diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 2c7fd1a0a9..440b246f13 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -1,9 +1,7 @@
# Dockerfile for the InvenTree devcontainer
+# This container is used for development of the InvenTree project, and includes all necessary dependencies for both backend and frontend development.
-# In contrast with the "production" image (which is based on an Alpine image)
-# we use a Debian-based image for the devcontainer
-
-FROM mcr.microsoft.com/devcontainers/python:3.11-bookworm@sha256:e754c29c4e3ffcf6c794c1020e36a0812341d88ec9569a34704b975fa89e8848
+FROM mcr.microsoft.com/devcontainers/python:3.12-trixie@sha256:5440cb68898d190ad6c6e8a4634ce89d0645bea47f9c8beb75612bb8e3983711
# InvenTree paths
ENV INVENTREE_HOME="/home/inventree"
@@ -25,10 +23,10 @@ RUN chmod +x init.sh
# Install required base packages
RUN apt update && apt install -y \
- python3.11-dev python3.11-venv \
+ python3-dev python3-venv \
postgresql-client \
libldap2-dev libsasl2-dev \
- libpango1.0-0 libcairo2 \
+ libpango-1.0-0 libcairo2 \
poppler-utils weasyprint
# Install packages required for frontend development
diff --git a/.devops/test_stats.yml b/.devops/test_stats.yml
deleted file mode 100644
index a0bc7ed680..0000000000
--- a/.devops/test_stats.yml
+++ /dev/null
@@ -1,79 +0,0 @@
-trigger:
- batch: true
- branches:
- include:
- - master
- - stable
- - refs/tags/*
- paths:
- include:
- - src/backend
-
-pool:
- vmImage: ubuntu-latest
-strategy:
- matrix:
- Python39:
- PYTHON_VERSION: '3.11'
- maxParallel: 3
-
-steps:
-- task: UsePythonVersion@0
- inputs:
- versionSpec: '$(PYTHON_VERSION)'
- architecture: 'x64'
-
-- task: PythonScript@0
- displayName: 'Export project path'
- inputs:
- scriptSource: 'inline'
- script: |
- """Search all subdirectories for `manage.py`."""
- from glob import iglob
- from os import path
- # Python >= 3.5
- manage_py = next(iglob(path.join('**', 'manage.py'), recursive=True), None)
- if not manage_py:
- raise SystemExit('Could not find a Django project')
- project_location = path.dirname(path.abspath(manage_py))
- print('Found Django project in', project_location)
- print('##vso[task.setvariable variable=projectRoot]{}'.format(project_location))
-
-- script: |
- python -m pip install --upgrade pip setuptools wheel uv
- uv pip install --require-hashes -r src/backend/requirements.txt
- uv pip install --require-hashes -r src/backend/requirements-dev.txt
- sudo apt-get install poppler-utils
- sudo apt-get install libpoppler-dev
- uv pip install unittest-xml-reporting coverage invoke
- displayName: 'Install prerequisites'
- env:
- UV_SYSTEM_PYTHON: 1
-
-- script: |
- pushd '$(projectRoot)'
- invoke update --uv
- coverage run manage.py test --testrunner xmlrunner.extra.djangotestrunner.XMLTestRunner --no-input
- coverage xml -i
- displayName: 'Run tests'
- env:
- INVENTREE_DB_ENGINE: sqlite3
- INVENTREE_DB_NAME: inventree
- INVENTREE_MEDIA_ROOT: ./media
- INVENTREE_STATIC_ROOT: ./static
- INVENTREE_BACKUP_DIR: ./backup
- INVENTREE_SITE_URL: http://localhost:8000
- INVENTREE_PLUGINS_ENABLED: true
- UV_SYSTEM_PYTHON: 1
- INVENTREE_DEBUG: true
- INVENTREE_LOG_LEVEL: INFO
-
-- task: PublishTestResults@2
- inputs:
- testResultsFiles: "**/TEST-*.xml"
- testRunTitle: 'Python $(PYTHON_VERSION)'
- condition: succeededOrFailed()
-
-- task: PublishCodeCoverageResults@2
- inputs:
- summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml'
diff --git a/.github/workflows/check_translations.yaml b/.github/workflows/check_translations.yaml
index edbdc6a57c..37a31849bd 100644
--- a/.github/workflows/check_translations.yaml
+++ b/.github/workflows/check_translations.yaml
@@ -9,7 +9,7 @@ on:
- l10
env:
- python_version: 3.11
+ python_version: 3.12
permissions:
contents: read
diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml
index 124fbcbfd2..42a292d3d5 100644
--- a/.github/workflows/docker.yaml
+++ b/.github/workflows/docker.yaml
@@ -62,7 +62,7 @@ jobs:
contents: read
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- python_version: "3.11"
+ python_version: 3.12
runs-on: ubuntu-latest # in the future we can try to use alternative runners here
steps:
@@ -84,6 +84,16 @@ jobs:
docker run --rm inventree-test test -f /home/inventree/gunicorn.conf.py
docker run --rm inventree-test test -f /home/inventree/src/backend/requirements.txt
docker run --rm inventree-test test -f /home/inventree/src/backend/InvenTree/manage.py
+ # Check that backend translations were compiled into the image (a few representative languages)
+ docker run --rm inventree-test test -f /home/inventree/src/backend/InvenTree/locale/de/LC_MESSAGES/django.mo
+ docker run --rm inventree-test test -f /home/inventree/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.mo
+ docker run --rm inventree-test test -f /home/inventree/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.mo
+ docker run --rm inventree-test test -f /home/inventree/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.mo
+ # Check that frontend translations (lingui) were compiled into the static build output (a few representative languages)
+ docker run --rm inventree-test grep -q '"src/locales/de/messages.ts"' /home/inventree/src/backend/InvenTree/web/static/web/.vite/manifest.json
+ docker run --rm inventree-test grep -q '"src/locales/fr/messages.ts"' /home/inventree/src/backend/InvenTree/web/static/web/.vite/manifest.json
+ docker run --rm inventree-test grep -q '"src/locales/ru/messages.ts"' /home/inventree/src/backend/InvenTree/web/static/web/.vite/manifest.json
+ docker run --rm inventree-test grep -q '"src/locales/zh_Hans/messages.ts"' /home/inventree/src/backend/InvenTree/web/static/web/.vite/manifest.json
- name: Build Docker Image
# Build the development docker image (using docker-compose.yml)
run: docker compose --project-directory . -f contrib/container/dev-docker-compose.yml build --no-cache
@@ -124,7 +134,7 @@ jobs:
contents: read
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- python_version: "3.11"
+ python_version: 3.12
runs-on: ubuntu-latest # in the future we can try to use alternative runners here
steps:
@@ -148,7 +158,7 @@ jobs:
id-token: write
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- python_version: "3.11"
+ python_version: 3.12
runs-on: ubuntu-latest # in the future we can try to use alternative runners here
steps:
diff --git a/.github/workflows/frontend.yaml b/.github/workflows/frontend.yaml
index e894fc30d4..7065f6f054 100644
--- a/.github/workflows/frontend.yaml
+++ b/.github/workflows/frontend.yaml
@@ -13,8 +13,9 @@ on:
branches-ignore: ["l10*"]
env:
- python_version: 3.11
+ python_version: 3.12
node_version: 24
+ plugin_creator_version: 1.20.0
# The OS version must be set per job
server_start_sleep: 60
@@ -153,7 +154,7 @@ jobs:
run: cd src/frontend && npx playwright install-deps
- name: Install Sample Plugin
run: |
- pip install -U inventree-plugin-creator
+ pip install -U inventree-plugin-creator==${{ env.plugin_creator_version }}
create-inventree-plugin --default
cd MyCustomPlugin && pip install -e . && cd frontend && npm install && npm run translate && npm run build
- name: Run Playwright tests
@@ -195,6 +196,9 @@ jobs:
--health-interval 10s
--health-timeout 5s
--health-retries 5
+ permissions:
+ contents: read # Required for actions/checkout
+ id-token: write # Required for GitHub OIDC
env:
COVERAGE: true
@@ -232,7 +236,7 @@ jobs:
run: cd src/frontend && npx playwright install-deps
- name: Install Sample Plugin
run: |
- pip install -U inventree-plugin-creator
+ pip install -U inventree-plugin-creator==${{ env.plugin_creator_version }}
create-inventree-plugin --default
cd MyCustomPlugin && pip install -e . && cd frontend && npm install && npm run translate && npm run build
- name: Playwright [${{ matrix.shard }} / 4]
diff --git a/.github/workflows/import_export.yaml b/.github/workflows/import_export.yaml
index 9b33ab8cab..5d692a5059 100644
--- a/.github/workflows/import_export.yaml
+++ b/.github/workflows/import_export.yaml
@@ -15,7 +15,7 @@ permissions:
contents: read
env:
- python_version: 3.11
+ python_version: 3.12
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/qc_checks.yaml b/.github/workflows/qc_checks.yaml
index 2b3419ac64..d616acde94 100644
--- a/.github/workflows/qc_checks.yaml
+++ b/.github/workflows/qc_checks.yaml
@@ -9,7 +9,7 @@ on:
branches-ignore: ["l10*"]
env:
- python_version: 3.11
+ python_version: 3.12
node_version: 24
# The OS version must be set per job
server_start_sleep: 60
@@ -222,7 +222,7 @@ jobs:
echo "Downloaded api.yaml"
- name: Running OpenAPI Spec diff action
id: breaking_changes
- uses: oasdiff/oasdiff-action/diff@3530478ec30f84adedbfeb28f0d9527a290f50a9 # pin@main
+ uses: oasdiff/oasdiff-action/diff@5fbe96ede8d0c53aeadef122d7a0abb79152d493 # pin@main
with:
base: "api.yaml"
revision: "src/backend/InvenTree/schema.yml"
@@ -363,7 +363,7 @@ jobs:
pip install .
if: needs.paths-filter.outputs.submit-performance == 'true'
- name: Performance Reporting
- uses: CodSpeedHQ/action@9d332c4d90b43981c3e55ae8e38e68709996240f # pin@v4.17.0
+ uses: CodSpeedHQ/action@c145068895e045cc725ee76fcd2307624b65c3af # pin@v4.17.5
# check if we are in inventree/inventree - reporting only works in that OIDC context
if: github.repository == 'inventree/InvenTree' && needs.paths-filter.outputs.submit-performance == 'true'
with:
@@ -379,7 +379,7 @@ jobs:
continue-on-error: true # continue if a step fails so that coverage gets pushed
strategy:
matrix:
- python_version: [3.11, 3.14]
+ python_version: [3.12, 3.14]
env:
INVENTREE_DB_NAME: ./inventree.sqlite
@@ -454,7 +454,7 @@ jobs:
env:
node_version: '>=24'
- name: Performance Reporting
- uses: CodSpeedHQ/action@9d332c4d90b43981c3e55ae8e38e68709996240f # pin@v4.17.0
+ uses: CodSpeedHQ/action@c145068895e045cc725ee76fcd2307624b65c3af # pin@v4.17.5
with:
mode: walltime
run: inv dev.test --pytest
diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml
index 1795c7ce0e..314e2891a8 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/release.yaml
@@ -7,7 +7,7 @@ on:
permissions:
contents: read
env:
- python_version: 3.11
+ python_version: 3.12
jobs:
stable:
@@ -151,9 +151,9 @@ jobs:
fail-fast: false
matrix:
target:
- - ubuntu:22.04
- ubuntu:24.04
- - debian:12
+ - ubuntu:26.04
+ - debian:13
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # pin@v6.0.3
diff --git a/.github/workflows/translations.yaml b/.github/workflows/translations.yaml
index 3307459c02..e1da913823 100644
--- a/.github/workflows/translations.yaml
+++ b/.github/workflows/translations.yaml
@@ -6,7 +6,7 @@ on:
- master
env:
- python_version: 3.11
+ python_version: 3.12
node_version: 24
permissions:
@@ -56,7 +56,7 @@ jobs:
echo "Resetting to HEAD~"
git reset HEAD~ || true
- name: crowdin action
- uses: crowdin/github-action@8868a33591d21088edfc398968173a3b98d51706 # pin@v2
+ uses: crowdin/github-action@52aa776766211d83d975df51f3b9c53c2f8ba35f # pin@v2
with:
upload_sources: true
upload_translations: false
diff --git a/.pkgr.yml b/.pkgr.yml
index ac9dc06408..4be9b08a36 100644
--- a/.pkgr.yml
+++ b/.pkgr.yml
@@ -21,9 +21,9 @@ before:
dependencies:
- curl
- poppler-utils
- - "python3.11 | python3.12 | python3.13 | python3.14"
- - "python3.11-venv | python3.12-venv | python3.13-venv | python3.14-venv"
- - "python3.11-dev | python3.12-dev | python3.13-dev | python3.14-dev"
+ - "python3.12 | python3.13 | python3.14"
+ - "python3.12-venv | python3.13-venv | python3.14-venv"
+ - "python3.12-dev | python3.13-dev | python3.14-dev"
- python3-pip
- python3-cffi
- python3-brotli
@@ -36,6 +36,6 @@ dependencies:
- jq
- "libffi7 | libffi8"
targets:
- ubuntu-22.04: true
ubuntu-24.04: true
- debian-12: true
+ ubuntu-26.04: true
+ debian-13: true
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index b140056f45..bc7e618931 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -37,7 +37,7 @@ repos:
files: src/backend/requirements-dev\.(in|txt)$
- id: pip-compile
name: pip-compile requirements-dev.in 3.14
- args: [src/backend/requirements-dev.in, -o, src/backend/requirements-dev-3.14.txt, -c, src/backend/requirements-3.14.txt, --python-version=3.14, -c, src/backend/requirements.txt]
+ args: [src/backend/requirements-dev.in, -o, src/backend/requirements-dev-3.14.txt, -c, src/backend/requirements-3.14.txt, --python-version=3.14, -c, src/backend/requirements.txt, -c, src/backend/requirements-dev.txt]
files: src/backend/requirements-dev\.(in|txt)$
- id: pip-compile
name: pip-compile requirements.txt
@@ -97,4 +97,4 @@ repos:
rev: 0.4.3
hooks:
- id: teyit
- language_version: python3.11
+ language_version: python3.12
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 17186b6d37..6405c43bd5 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -47,7 +47,7 @@
"name": "InvenTree invoke schema",
"type": "debugpy",
"request": "launch",
- "program": "${workspaceFolder}/.venv/lib/python3.11/site-packages/invoke/__main__.py",
+ "program": "${workspaceFolder}/.venv/lib/python3.12/site-packages/invoke/__main__.py",
"cwd": "${workspaceFolder}",
"args": [
"dev.schema","--ignore-warnings"
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 0000000000..90afc6d2bc
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,5 @@
+See [CONTRIBUTING.md](CONTRIBUTING.md) for codebase guidance.
+Security reports must follow the security policy in [SECURITY.md](docs/docs/SECURITY.md) and provide how they interact with the [threat model](docs/docs/concepts/threat_model.md).
+
+Do not open a pull request without manual review by a human. Do not file AI generated issues under any circumstances.
+Using AI generated content in issue/PR discussions might lead to code of conduct violations and/or bans.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 930b77ad24..4bea76d17c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,7 +5,21 @@ All major notable changes to this project will be documented in this file (start
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## Unreleased - YYYY-MM-DD
+## Unreleased - xxxx.xx.xx
+
+### Breaking Changes
+
+- [#12223](https://github.com/inventree/InvenTree/pull/12223) removes support for python 3.11 and stops providing packages for Debian 11 and Ubuntu 20.04.
+
+### Added
+
+- [#12250](https://github.com/inventree/InvenTree/pull/12250) adds "active" field to the ProjectCode model and API endpoints
+
+### Changed
+
+### Removed
+
+## 1.4.0 - 2026-06-24
### Breaking Changes
diff --git a/CLAUDE.md b/CLAUDE.md
new file mode 100644
index 0000000000..90afc6d2bc
--- /dev/null
+++ b/CLAUDE.md
@@ -0,0 +1,5 @@
+See [CONTRIBUTING.md](CONTRIBUTING.md) for codebase guidance.
+Security reports must follow the security policy in [SECURITY.md](docs/docs/SECURITY.md) and provide how they interact with the [threat model](docs/docs/concepts/threat_model.md).
+
+Do not open a pull request without manual review by a human. Do not file AI generated issues under any circumstances.
+Using AI generated content in issue/PR discussions might lead to code of conduct violations and/or bans.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index c589902e9b..7b48b0db69 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,15 +1,28 @@
-### Contributing to InvenTree
+# Contributing to InvenTree
Hi there, thank you for your interest in contributing!
Please read our contribution guidelines, before submitting your first pull request to the InvenTree codebase.
-### Project File Structure
+## About InvenTree
+
+InvenTree is an open-source inventory management system designed for makers, engineers, and small manufacturers.
+
+The codebase is split into two independently deployable layers:
+
+**Backend — Django (Python)**
+A REST API built with Django and Django REST Framework. It owns all business logic, the database schema, background task processing (Django-Q2), plugin execution, and report generation. The backend can be used standalone via the API without the frontend.
+
+**Frontend — React (TypeScript)**
+A single-page application built with React 19, Mantine 9, and Vite. It communicates exclusively through the backend REST API. It has its own build pipeline, test suite (Playwright), and i18n system (Lingui). The frontend lives entirely in `src/frontend/` and has no Django awareness.
+
+When making changes, be clear about which layer you are working in — they have separate toolchains, test runners, and linting rules.
+
+## Project File Structure
The InvenTree project is split into two main components: frontend and backend. This source is located in the `src` directory. All other files are used for project management, documentation, and testing.
-```bash
+```
InvenTree/
-├─ .devops/ # Files for Azure DevOps
├─ .github/ # Files for GitHub
│ ├─ actions/ # Reused actions
│ ├─ ISSUE_TEMPLATE/ # Templates for issues and pull requests
@@ -39,11 +52,209 @@ InvenTree/
│ │ ├─ tsconfig.json # Settings for frontend compilation
├─ .pkgr.yml # Build definition for Debian/Ubuntu packages
├─ .pre-commit-config.yaml # Code formatter/linter configuration
+├─ biome.json # JS/TS linting and formatting config
├─ CONTRIBUTING.md # Contribution guidelines and overview
├─ Procfile # Process definition for Debian/Ubuntu packages
+├─ pyproject.toml # Python tooling config (Ruff, pytest, coverage, djLint, ty)
├─ README.md # General project information and overview
├─ SECURITY.md # Project security policy
├─ tasks.py # Action definitions for development, testing and deployment
```
+### Backend app domains
+
+The following Django apps are defined in `src/backend/InvenTree/`:
+
+| Directory | Domain |
+|-----------|--------|
+| `build/` | Build (manufacturing/assembly) orders |
+| `common/` | Shared models, settings, utilities |
+| `company/` | Suppliers, customers, manufacturers |
+| `data_exporter/` | Data export functionality |
+| `generic/` | Shared enums, events, and state machine utilities |
+| `importer/` | Data import functionality |
+| `InvenTree/` | Core configuration (settings, URLs, middleware) |
+| `machine/` | Support for external machines and devices |
+| `order/` | Purchase orders and sales orders |
+| `part/` | Parts catalogue and categories |
+| `stock/` | Stock items and locations |
+| `report/` | Report templates and generation |
+| `plugin/` | Plugin system |
+| `users/` | User accounts and permissions |
+| `web/` | Serves the React frontend static build to Django |
+
+### Frontend layout
+
+```
+src/frontend/src/
+ components/ # Reusable React components
+ pages/ # Page-level route components
+ tables/ # Data table components
+ forms/ # Form components
+ hooks/ # Custom React hooks
+ states/ # Zustand global state
+ locales/ # i18n translation catalogues (Lingui)
+```
+
+## Development Setup
+
+The project uses [Invoke](https://www.pyinvoketasks.com/) (`tasks.py`) as the task runner.
+
+```bash
+# One-time setup: creates venv at dev/venv/, installs deps, sets up pre-commit hooks
+invoke dev.setup-dev
+
+# Apply database migrations
+invoke migrate
+
+# Create an admin account (required to log in)
+invoke superuser
+
+# Terminal 1 — Django dev server (port 8000)
+invoke dev.server
+
+# Terminal 2 — Vite dev server with HMR (port 5173)
+invoke dev.frontend-server
+
+# Terminal 3 (optional) — Background task worker
+invoke worker
+```
+
+A VS Code Dev Container configuration is available at `.devcontainer/` and includes PostgreSQL 15 and Redis 7 sidecar services.
+
+To see all available tasks, run `invoke --list`.
+
+## Running Backend Tests
+
+Always pass `--keepdb` to backend test commands. It reuses the existing test database instead of rebuilding it from scratch on every run, which is significantly faster.
+
+```bash
+# All backend tests
+invoke dev.test --keepdb
+
+# Specific test module
+invoke dev.test --keepdb --runtest=company.test_api
+
+# With coverage
+invoke dev.test --keepdb --coverage
+
+# Migration tests only (skip --keepdb here — migrations must run against a fresh DB)
+invoke dev.test --migrations
+```
+
+## Running Frontend Tests
+
+Frontend tests use [Playwright](https://playwright.dev/) and target Chromium and Firefox. The test runner automatically starts the Vite dev server (port 5173), the Django backend (port 8000), and the background worker — no manual server startup is needed.
+
+```bash
+# Open Playwright's interactive UI (recommended for local development)
+invoke dev.frontend-test
+
+# Run tests in headless mode from the frontend directory
+cd src/frontend && npx playwright test
+
+# Run a specific test file
+cd src/frontend && npx playwright test tests/pui_login.spec.ts
+
+# Run tests in a specific browser only
+cd src/frontend && npx playwright test --project=chromium
+```
+
+Test files live in `src/frontend/tests/` and follow the `pui_*.spec.ts` naming convention.
+
+Locally, tests run with a single worker (required for Vite HMR compatibility). In CI they run with multiple workers against a production build for speed.
+
+## Code Style and Linting
+
+All formatting and linting runs automatically on commit via pre-commit hooks. Never skip them.
+
+### Python (Backend)
+
+Tool: **Ruff** (replaces Black, isort, flake8, and others).
+
+```bash
+ruff check src/backend/ # Lint
+ruff format src/backend/ # Format
+```
+
+- Google-style docstrings enforced
+- Enabled rule sets: A, B, C, D, F, I, N, SIM, PIE, PLE, PLW, RUF, UP, W
+- Type checking: `ty` (configured in `pyproject.toml`)
+
+### Django Templates
+
+Tool: **djLint**
+
+```bash
+djlint src/backend/ --check
+```
+
+### JavaScript / TypeScript (Frontend)
+
+Tool: **Biome** (replaces ESLint + Prettier).
+
+```bash
+cd src/frontend
+yarn biome check . # Lint + format check
+yarn biome format . # Format only
+```
+
+- Single quotes, space indentation
+- `noUnusedImports` is an error
+
+## Making Changes
+
+### Backend
+
+- Each Django app has its own `models.py`, `serializers.py`, `views.py`, `urls.py`, and `filters.py`.
+- API endpoints use Django REST Framework; document them with drf-spectacular decorators.
+- After changing models, create a migration: `invoke dev.makemigrations`.
+- Tests live in `test_*.py` files within each app directory.
+- Background tasks go through Django-Q2; define them in the app's `tasks.py`.
+
+### Frontend
+
+- Pages register themselves in `src/frontend/src/router.tsx`.
+- Server state fetching uses TanStack Query (React Query); avoid raw `useEffect` for data fetching.
+- Global UI state uses Zustand stores in `states/`.
+- UI components come from Mantine 9.x; use the Mantine component library before writing custom CSS.
+- Add i18n strings with Lingui (`t` macro / `Trans` component); run `invoke int.frontend-trans` to extract from source and compile. (`invoke dev.translate` is for the full translation pipeline and is not intended for local use.)
+- Playwright tests live in `src/frontend/tests/`.
+
+### Dependencies
+
+**Python:** Add packages to `src/backend/requirements.in` (or `requirements-dev.in` for dev-only tools). The pre-commit hook runs `pip-compile` automatically on commit to regenerate `requirements.txt`. Never edit `requirements.txt` directly.
+
+**Frontend:** Add packages with `yarn add ` from `src/frontend/`.
+
+### Migrations
+
+- Never edit existing migration files; always generate new ones.
+- Keep migrations reversible where possible.
+- Migration tests run in CI under the tag `migration_test`.
+
+## CI / CD
+
+GitHub Actions workflows live in `.github/workflows/`. Key workflows:
+
+| Workflow | Purpose |
+|----------|---------|
+| `qc_checks.yaml` | Lint, type-check, backend tests, API schema |
+| `frontend.yaml` | Playwright E2E tests, frontend build |
+| `docker.yaml` | Docker image builds |
+| `translations.yaml` | Crowdin i18n sync |
+
+CI uses path-based filtering — only affected jobs run per PR. Coverage tracked via Codecov; quality analysis via SonarCloud.
+
+## Key Conventions
+
+- **REST API versioning:** Endpoint changes must not break the published API schema. Run `invoke dev.schema` and check the diff before opening a PR.
+- **Plugin safety:** The plugin system (`plugin/`) is a public extension point; avoid breaking its interfaces.
+- **No hardcoded secrets:** gitleaks runs in pre-commit and CI — any credential-shaped string will block merges.
+- **Database portability:** Code must work on PostgreSQL, MySQL/MariaDB, and SQLite. Avoid database-specific SQL or ORM features.
+- **Frontend translations:** Every user-visible string must be wrapped in a Lingui `t` macro or `` component.
+- **Test tagging:** Tag slow or special tests (`@tag('migration_test')`, `@tag('performance_test')`) so CI can filter them selectively.
+
+---
+
Refer to our [contribution guidelines](https://docs.inventree.org/en/latest/develop/contributing/) for more information!
diff --git a/README.md b/README.md
index 7803cf8ec5..26afd2f362 100644
--- a/README.md
+++ b/README.md
@@ -9,7 +9,6 @@
[](https://inventree.readthedocs.io/en/latest/?badge=latest)

[](https://app.netlify.com/sites/inventree/deploys)
-[](https://dev.azure.com/InvenTree/InvenTree%20test%20statistics/_build/latest?definitionId=3&branchName=testing)
[](https://bestpractices.coreinfrastructure.org/projects/7179)
[](https://securityscorecards.dev/viewer/?uri=github.com/inventree/InvenTree)
@@ -202,6 +201,7 @@ Find a full list of used third-party libraries in the license information dialog
+
diff --git a/codecov.yml b/codecov.yml
index b80efb27e7..35e93ceb04 100644
--- a/codecov.yml
+++ b/codecov.yml
@@ -24,7 +24,7 @@ flag_management:
carryforward: true
statuses:
- type: project
- target: 40%
+ target: 38%
- name: web
carryforward: true
statuses:
diff --git a/contrib/container/Dockerfile b/contrib/container/Dockerfile
index 0427dd15ed..de1ab6ce8e 100644
--- a/contrib/container/Dockerfile
+++ b/contrib/container/Dockerfile
@@ -119,7 +119,8 @@ RUN pip install --user --require-hashes -r base_requirements.txt --no-cache-dir
rm -rf /root/.cache/pip
# Install frontend build dependencies
-RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.5/install.sh | bash && \
+# pinned to v0.40.5
+RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/1889911f0841e669de0be5bd02c737a3f1fd20fa/install.sh | bash && \
bash -c "export NVM_DIR="$HOME/.nvm" && source $HOME/.nvm/nvm.sh && \
nvm install $NODE_VERSION && corepack enable yarn && yarn config set network-timeout 600000 -g"
RUN bash -c "source $HOME/.nvm/nvm.sh && cd '${INVENTREE_HOME}' && invoke int.frontend-compile --extract"
@@ -145,6 +146,9 @@ ENV PATH=/root/.local/bin:$PATH
COPY --from=builder_stage ${INVENTREE_BACKEND_DIR}/InvenTree/web/static/web ${INVENTREE_BACKEND_DIR}/InvenTree/web/static/web
COPY --from=builder_stage /root/.local /root/.local
+# Compile Django backend translations during image build
+RUN bash -c "cd '${INVENTREE_HOME}' && invoke int.backend-compilemessages"
+
# Launch the production server
CMD ["sh", "-c", "exec gunicorn -c ./gunicorn.conf.py InvenTree.wsgi -b ${INVENTREE_WEB_ADDR}:${INVENTREE_WEB_PORT} --chdir ${INVENTREE_BACKEND_DIR}/InvenTree"]
diff --git a/contrib/container/requirements.in b/contrib/container/requirements.in
index 932b942c3d..1e29f27b0d 100644
--- a/contrib/container/requirements.in
+++ b/contrib/container/requirements.in
@@ -1,18 +1,18 @@
# Base python requirements for docker containers
# Basic package requirements
-invoke>=2.2.0 # Invoke build tool
-pyyaml>=6.0.1
-setuptools>=69.0.0
-wheel>=0.41.0
+invoke # Invoke build tool
+pyyaml
+setuptools
+wheel
# Database links
psycopg[binary, pool]
-mysqlclient>=2.2.0
-mariadb>=1.1.8
+mysqlclient
+mariadb
# gunicorn web server
-gunicorn>=22.0.0
+gunicorn
# LDAP required packages
django-auth-ldap # Django integration for ldap auth
diff --git a/contrib/container/requirements.txt b/contrib/container/requirements.txt
index 066208a24c..53d6a48a72 100644
--- a/contrib/container/requirements.txt
+++ b/contrib/container/requirements.txt
@@ -236,26 +236,26 @@ typing-extensions==4.15.0 \
# via
# -c src/backend/requirements.txt
# psycopg-pool
-uv==0.11.23 \
- --hash=sha256:03fbb0a1c7b6d15e96778bdd79e8d1826c6259fea17fc13337fb0744136953f2 \
- --hash=sha256:3a900c8fd757f8c3da9dc5532d9a22d30540e91fdefd63c93909fedbfd756655 \
- --hash=sha256:576d776a1ca62e3d8aba99f0d8ec607db91a5ebaf52feaff820f28ed820e1665 \
- --hash=sha256:61e6bd7e7f0fe24f103540ba19516443bea6e689022c787217310a1e64558e3f \
- --hash=sha256:6d7cea7d9ade3c1c3e3db1dfcc23d335bceaabf38f51e442b6f57f8f7885a9a6 \
- --hash=sha256:7a85330de0a7eb0d5c6cf03c80edfb86facad19df367a0b52fc906db1ab15ce9 \
- --hash=sha256:91d19c4249d7437b69b91c385134360d7ed9d0ee2e2e83e81d369867151e78c2 \
- --hash=sha256:985aa93c9d6223e32fc747e09662537c4073c9ebef59c0a4fd7c6949d1d24fb3 \
- --hash=sha256:9dd412127cbe0e115bd3fc5c6cbe9cf59f593273fafab9f7dc6b2ac95efcc7c1 \
- --hash=sha256:ac337dacd640aab1ef97cf00f8c01e2889f0fd0ef8460a0f4e816bf12bb5988b \
- --hash=sha256:b3f515fd6b43068f241467496bced62cb2ed36d52d4c0877cfe61a1240713d32 \
- --hash=sha256:b8abe7d6f5e0d92bd41a9c000bbd9c8387af7886df4790c0451a34e781b8a075 \
- --hash=sha256:bbc41182d655f92cd380ecdf378da7fc1598c6b19057208f450f0ee9c259f46a \
- --hash=sha256:c2089b992919858dabae89d410cbb5cecf9034d26bbb04f14e6da52dffced290 \
- --hash=sha256:ca1d37e851fb9323250385403d8512a71c0d1b6162c729ff4909f37cfd067920 \
- --hash=sha256:d256f90513d01ff6cbc2f17d88c0ccde65d138500df547ece214e6a50731c4b7 \
- --hash=sha256:d62410e5f60a961cfda00ead8a1cc5fd37d052afda021099e488e90c15419beb \
- --hash=sha256:e7e215d69ea21fd5824a63edf8fef933bee2c028a0c2930651cfa6b88ca4ff8e \
- --hash=sha256:f2476dda35866ea3ded3a5905759da2d32dfac36dfd5b3428191a99a8ce15b02
+uv==0.11.24 \
+ --hash=sha256:047d763d20d71968c00f4afec40b0e75d9da7e3693f725b9f502d84a25256893 \
+ --hash=sha256:0e100b9cbc59beff2730840ac989b1f100cc03c90514e7cab6992a1f3f13784e \
+ --hash=sha256:3176668ea8a2318d775c0d9188661c61ccc36790220724b1d360fcc8945d520e \
+ --hash=sha256:356435577fae11fafe7a067ee3269cccefd35b031b83a3a36c87fe9d192bffba \
+ --hash=sha256:38f38c9449aafd71dc0fa35e66a8a547ee48947b2f2f94084893c2afe6058cfa \
+ --hash=sha256:438f8291fb9daea30a4bd333299b82e6ef755578302745a021162f328cfcfc68 \
+ --hash=sha256:48a6123f71b801e0e0b8a38520b011632ad81e0a043445044ce5b1a7b1cec7b6 \
+ --hash=sha256:6ecdad43e870f88d3772d9d37e877259ae35ec374d51589805cdcf6196205829 \
+ --hash=sha256:79757f90b7765996366b80e77cad13555c7f7e1282ca8d8b686ee21773ab0b77 \
+ --hash=sha256:8346b0086d213b80430f3bb4477379a8a4fa550b03447d23c84eee85c2e52bc4 \
+ --hash=sha256:8602a1b6300a3a948afacc62e1cb933c8394c27966db85ed7e29483300b69dc4 \
+ --hash=sha256:9312b6fd44361674e9c847a828ded792493766697816261e05848a024fe34129 \
+ --hash=sha256:bf568c62dddd55ad9c85a16ffdfbcc7746be9c3159ed644e4f9e6f5e44905cbb \
+ --hash=sha256:c4ab221c0a949f8006a7582786dae384706b2f82016a0db60baa7cc696042705 \
+ --hash=sha256:c8ec3caf656645f58b53cb9aee9aa95cfc65c82ba2d7f1362bfd2660d1484307 \
+ --hash=sha256:d6a49543c659c0cf1ff4c944955d97e69dbce4b76e3d284f5a92cea19133ebb6 \
+ --hash=sha256:e499579f557abf17b8ffd1490d3e827748aea096f6eaa66737e729e046449f08 \
+ --hash=sha256:e7e78c18686202c8b8715bebb83bfaf58f82d7fb848b6a5ae4e925a9fac3de4c \
+ --hash=sha256:ed0c9a9d7909f0e48a9dafe666ca9ebefe2a1534e51ed05c0a7de7406465f868
# via -r contrib/container/requirements.in
wheel==0.47.0 \
--hash=sha256:212281cab4dff978f6cedd499cd893e1f620791ca6ff7107cf270781e587eced \
diff --git a/contrib/dev_reqs/requirements.in b/contrib/dev_reqs/requirements.in
index bb389b1af7..115b23c47f 100644
--- a/contrib/dev_reqs/requirements.in
+++ b/contrib/dev_reqs/requirements.in
@@ -1,4 +1,4 @@
# Packages needed for CI/packages
requests==2.34.2
pyyaml==6.0.3
-jc==1.25.6
+jc
diff --git a/contrib/dev_reqs/requirements.txt b/contrib/dev_reqs/requirements.txt
index 916e1453b7..d5a831592b 100644
--- a/contrib/dev_reqs/requirements.txt
+++ b/contrib/dev_reqs/requirements.txt
@@ -145,9 +145,9 @@ idna==3.18 \
# via
# -c src/backend/requirements.txt
# requests
-jc==1.25.6 \
- --hash=sha256:27f58befc7ae0a4c63322926c5f1ec892e3eac4a065eff3b07cfe420a6924a07 \
- --hash=sha256:7367b59e6e0da8babeede1e5b0da083f3c5aa6b6e585b4aed28dd7c4b2d76162
+jc==1.25.7 \
+ --hash=sha256:5ed6a0da915c931c04693cab806d5c31d9ef14ca998c6c32308460d37cb30baf \
+ --hash=sha256:63481e34d92715781e1b094eca7d76d122a14489463d45b7f3e8180f44ea3a10
# via -r contrib/dev_reqs/requirements.in
pygments==2.20.0 \
--hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \
diff --git a/contrib/packager.io/functions.sh b/contrib/packager.io/functions.sh
index c4703d6eba..2705a369e8 100755
--- a/contrib/packager.io/functions.sh
+++ b/contrib/packager.io/functions.sh
@@ -79,7 +79,7 @@ function detect_python() {
echo "${On_Red}"
echo "# POI07| Python ${SETUP_PYTHON} not found - aborting!"
echo "# POI07| Please ensure python can be executed with the command '$SETUP_PYTHON' by the current user '$USER'."
- echo "# POI07| If you are using a different python version, please set the environment variable SETUP_PYTHON to the correct command - eg. 'python3.11'."
+ echo "# POI07| If you are using a different python version, please set the environment variable SETUP_PYTHON to the correct command - eg. 'python3.12'."
echo "${Color_Off}"
exit 1
fi
diff --git a/contrib/packager.io/postinstall.sh b/contrib/packager.io/postinstall.sh
index a3ae0b0802..5660900b65 100755
--- a/contrib/packager.io/postinstall.sh
+++ b/contrib/packager.io/postinstall.sh
@@ -26,7 +26,7 @@ export DATA_DIR=${APP_HOME}/data
export SETUP_NGINX_FILE=${SETUP_NGINX_FILE:-/etc/nginx/sites-enabled/inventree.conf}
export SETUP_ADMIN_PASSWORD_FILE=${CONF_DIR}/admin_password.txt
export SETUP_NO_CALLS=${SETUP_NO_CALLS:-false}
-export SETUP_PYTHON=${SETUP_PYTHON:-python3.11}
+export SETUP_PYTHON=${SETUP_PYTHON:-python3.12}
export SETUP_ADMIN_NOCREATION=${SETUP_ADMIN_NOCREATION:-false}
# SETUP_DEBUG can be set to get debug info
# SETUP_EXTRA_PIP can be set to install extra pip packages
diff --git a/docs/docs/hooks.py b/docs/docs/hooks.py
index b038738565..fc1f98e4a0 100644
--- a/docs/docs/hooks.py
+++ b/docs/docs/hooks.py
@@ -4,10 +4,10 @@ import json
import os
import re
from datetime import datetime
-from distutils.version import StrictVersion # type: ignore[import]
from pathlib import Path
import requests
+from packaging.version import Version
here = Path(__file__).parent
@@ -57,7 +57,7 @@ def fetch_rtd_versions():
print('No RTD token found - skipping RTD version fetch')
# Sort versions by version number
- versions = sorted(versions, key=lambda x: StrictVersion(x['version']), reverse=True)
+ versions = sorted(versions, key=lambda x: Version(x['version']), reverse=True)
# Add "latest" version first
if not any(x['title'] == 'latest' for x in versions):
diff --git a/docs/docs/plugins/mixins/barcode.md b/docs/docs/plugins/mixins/barcode.md
index 962e36da31..3985990141 100644
--- a/docs/docs/plugins/mixins/barcode.md
+++ b/docs/docs/plugins/mixins/barcode.md
@@ -54,14 +54,14 @@ class InvenTreeBarcodePlugin(BarcodeMixin, InvenTreePlugin):
VERSION = "0.0.1"
AUTHOR = "Michael"
- def scan(self, barcode_data):
+ def scan(self, barcode_data, user, **kwargs):
if barcode_data.startswith("PART-"):
try:
pk = int(barcode_data.split("PART-")[1])
instance = Part.objects.get(pk=pk)
label = Part.barcode_model_type()
- return {label: instance.format_matched_response()}
+ return {label: instance.format_matched_response(user=user)}
except Part.DoesNotExist:
pass
```
diff --git a/docs/docs/project/sponsored_resources.md b/docs/docs/project/sponsored_resources.md
index 0a733b0686..4c206bcc06 100644
--- a/docs/docs/project/sponsored_resources.md
+++ b/docs/docs/project/sponsored_resources.md
@@ -14,6 +14,8 @@ Individuals and companies can also support via [GitHub sponsors](https://github.
- [Codecov](https://codecov.io) - Code coverage as a service, used to track the code coverage of the various components
- [Netlify](https://www.netlify.com/) - Static site hosting provider, used to test deploy the frontend and website
- [Depot](https://depot.dev/?utm_source=inventree) - Docker build accelerator, used to build the multi-arch images for the InvenTree docker image
+ - [CodSpeed](https://codspeed.io/) - Performance testing platform, used to track the performance of a few performance benchmarks
+- [Flakiness](https://flakiness.io/) - Frontend test flakiness detection, used to track the flakiness of the various test harnesses
## Past Supporters
diff --git a/docs/docs/settings/global.md b/docs/docs/settings/global.md
index 2e22defb8e..ee5820408a 100644
--- a/docs/docs/settings/global.md
+++ b/docs/docs/settings/global.md
@@ -226,6 +226,7 @@ Configuration of stock item options
{{ globalsetting("STOCK_SHOW_INSTALLED_ITEMS") }}
{{ globalsetting("STOCK_ENFORCE_BOM_INSTALLATION") }}
{{ globalsetting("STOCK_ALLOW_OUT_OF_STOCK_TRANSFER") }}
+{{ globalsetting("STOCK_MERGE_ON_TRANSFER") }}
{{ globalsetting("TEST_STATION_DATA") }}
### Build Orders
diff --git a/docs/docs/start/docker_install.md b/docs/docs/start/docker_install.md
index 44f60ffba1..045ef22c67 100644
--- a/docs/docs/start/docker_install.md
+++ b/docs/docs/start/docker_install.md
@@ -325,7 +325,7 @@ ARG INVENTREE_TAG
# prebuild stage - needs a lot of build dependencies
# make sure, the alpine and python version matches the version used in the inventree base image
-FROM python:3.11-alpine3.18 as prebuild
+FROM python:3.12-alpine3.18 as prebuild
# Install whatever development dependency is needed (e.g. cups-dev, gcc, the musl-dev build tools and the pip pycups package)
RUN apk add --no-cache cups-dev gcc musl-dev && \
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index 16f051309f..ca20e704c7 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -366,7 +366,7 @@ extra:
# provider: google
# property: UA-143467500-1
- min_python_version: 3.11
+ min_python_version: 3.12
min_invoke_version: 2.0.0
django_version: 5.2
docker_postgres_version: 17
diff --git a/docs/mlc_config.json b/docs/mlc_config.json
index a3e538ca10..91d6692af8 100644
--- a/docs/mlc_config.json
+++ b/docs/mlc_config.json
@@ -31,9 +31,6 @@
},
{
"pattern": "https://opensource.org/license/MIT"
- },
- {
- "pattern": "^https://dev.azure.com"
}
]
}
diff --git a/pyproject.toml b/pyproject.toml
index 169e5a1f89..1076f0896a 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -97,25 +97,24 @@ skip-magic-trailing-comma = true
line-ending = "auto"
[tool.uv.pip]
-python-version = "3.11"
+python-version = "3.12"
no-strip-extras=true
generate-hashes=true
[tool.ty.environment]
-root = ["src/backend/InvenTree"]
+extra-paths = ["src/backend/InvenTree"]
[tool.ty.rules]
-unresolved-reference="ignore" # 21 # see https://github.com/astral-sh/ty/issues/220
-unresolved-attribute="ignore" # 505 # need Plugin Mixin typing
+unresolved-attribute="ignore" # 837 # need Plugin Mixin typing
call-non-callable="ignore" # 8 ##
-invalid-assignment="ignore" # 17 # need to wait for better django field stubs
-# invalid-method-override="ignore" # 99
-invalid-return-type="ignore" # 22 ##
-# possibly-missing-attribute="ignore" # 25 # https://github.com/astral-sh/ty/issues/164
-unknown-argument="ignore" # 3 # need to wait for better django field stubs
+invalid-assignment="ignore" # 40 # need to wait for better django field stubs
+invalid-method-override="ignore" # 103
+invalid-return-type="ignore" # 44 ##
invalid-argument-type="ignore" # 49
-no-matching-overload="ignore" # 3 # need to wait for betterdjango field stubs
-possibly-unbound-attribute="ignore" # 21
+no-matching-overload="ignore" # 10 # need to wait for betterdjango field stubs
+
+# warn about unused ignore comments
+unused-ignore-comment = "error"
[tool.coverage.run]
source = ["src/backend/InvenTree", "InvenTree"]
diff --git a/readthedocs.yml b/readthedocs.yml
index e2bf29c339..1d72620cfe 100644
--- a/readthedocs.yml
+++ b/readthedocs.yml
@@ -9,9 +9,9 @@ python:
- requirements: src/backend/requirements.txt
build:
- os: "ubuntu-22.04"
+ os: "ubuntu-24.04"
tools:
- python: "3.11"
+ python: "3.12"
jobs:
post_install:
- pip install -U invoke
diff --git a/src/backend/InvenTree/InvenTree/api.py b/src/backend/InvenTree/InvenTree/api.py
index a85498596f..1dfc53fa5c 100644
--- a/src/backend/InvenTree/InvenTree/api.py
+++ b/src/backend/InvenTree/InvenTree/api.py
@@ -494,7 +494,7 @@ class BulkCreateMixin:
if unique_create_fields := getattr(self, 'unique_create_fields', None):
existing = collections.defaultdict(list)
for idx, item in enumerate(data):
- key = tuple(item[v] for v in list(unique_create_fields)) # type: ignore[not-subscriptable]
+ key = tuple(item[v] for v in list(unique_create_fields)) # ty: ignore[not-subscriptable]
existing[key].append(idx)
unique_errors = [[] for _ in range(len(data))]
diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py
index 14341d04fb..b34c1ef5c5 100644
--- a/src/backend/InvenTree/InvenTree/api_version.py
+++ b/src/backend/InvenTree/InvenTree/api_version.py
@@ -1,11 +1,19 @@
"""InvenTree API version information."""
# InvenTree API version
-INVENTREE_API_VERSION = 511
+INVENTREE_API_VERSION = 513
"""Increment this API version number whenever there is a significant change to the API that any clients need to know about."""
INVENTREE_API_TEXT = """
+v513 -> 2026-06-25 : https://github.com/inventree/InvenTree/pull/12250
+ - Adds "active" field to the ProjectCode model and API endpoints
+
+v512 -> 2026-06-20 : https://github.com/inventree/InvenTree/pull/12022
+ - Adds optional "merge" field to each item in the Stock Transfer API endpoint
+ - When merge is enabled, transferred stock is combined into compatible existing stock at the destination
+ - Stock merge tracking entries now include an "added" delta field.
+
v511 -> 2026-06-19 : https://github.com/inventree/InvenTree/pull/12204
- Adds new filtering options to PartCategoryTree and StockLocationTree API endpoints
diff --git a/src/backend/InvenTree/InvenTree/exceptions.py b/src/backend/InvenTree/InvenTree/exceptions.py
index 161860339d..597f1f5063 100644
--- a/src/backend/InvenTree/InvenTree/exceptions.py
+++ b/src/backend/InvenTree/InvenTree/exceptions.py
@@ -19,12 +19,13 @@ logger = structlog.get_logger('inventree')
def log_error(
- path,
- error_name=None,
- error_info=None,
- error_data=None,
+ path: Optional[str] = None,
+ error_name: Optional[str] = None,
+ error_info: Optional[str] = None,
+ error_data: Optional[str] = None,
scope: Optional[str] = None,
plugin: Optional[str] = None,
+ user_id: Optional[int] = None,
):
"""Log an error to the database.
@@ -37,6 +38,7 @@ def log_error(
error_data: The error data (optional, overrides 'data')
scope: The scope of the error (optional)
plugin: The plugin name associated with this error (optional)
+ user_id: The user ID associated with this error (optional)
"""
import InvenTree.ready
@@ -71,6 +73,9 @@ def log_error(
except AttributeError:
data = 'No traceback information available'
+ if user_id:
+ data = f'User ID: {user_id}\n{data}'
+
# Log error to stderr
logger.error(info)
diff --git a/src/backend/InvenTree/InvenTree/middleware.py b/src/backend/InvenTree/InvenTree/middleware.py
index 98ffc08c22..0c6ff3c94b 100644
--- a/src/backend/InvenTree/InvenTree/middleware.py
+++ b/src/backend/InvenTree/InvenTree/middleware.py
@@ -106,6 +106,32 @@ apps_mfa_bypass = [
"""App namespaces that bypass MFA enforcement - normal security model is still enforced."""
+def csrf_failure(request, reason=''):
+ """Custom CSRF failure handler.
+
+ Returns a JSON response for API/headless requests so the frontend can
+ provide a meaningful error message to the user
+ """
+ from django.views.csrf import csrf_failure as django_default
+
+ if (
+ request.path.startswith('/_allauth/')
+ or request.path.startswith('/api/')
+ or 'application/json' in request.headers.get('Accept', '')
+ or 'application/json' in request.headers.get('Content-Type', '')
+ ):
+ return JsonResponse(
+ {
+ 'detail': _(
+ 'CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly.'
+ )
+ },
+ status=403,
+ )
+
+ return django_default(request, reason=reason)
+
+
class AuthRequiredMiddleware:
"""Check for user to be authenticated."""
diff --git a/src/backend/InvenTree/InvenTree/models.py b/src/backend/InvenTree/InvenTree/models.py
index 1043fb6db9..31c68e8730 100644
--- a/src/backend/InvenTree/InvenTree/models.py
+++ b/src/backend/InvenTree/InvenTree/models.py
@@ -23,6 +23,7 @@ from django_q.models import Task
from error_report.models import Error
from mptt.exceptions import InvalidMove
from mptt.models import MPTTModel, TreeForeignKey
+from rest_framework.exceptions import PermissionDenied
from stdimage.models import StdImageField
from taggit.managers import TaggableManager
@@ -1334,8 +1335,16 @@ class InvenTreeBarcodeMixin(models.Model):
return generate_barcode(self)
- def format_matched_response(self):
+ def format_matched_response(self, user, **kwargs):
"""Format a standard response for a matched barcode."""
+ # Check permission for this object
+ from users.permissions import check_user_permission
+
+ if not check_user_permission(user, self, 'view'):
+ raise PermissionDenied(
+ _('User does not have permission to view this model')
+ )
+
data = {'pk': self.pk}
if hasattr(self, 'get_api_url'):
diff --git a/src/backend/InvenTree/InvenTree/schema.py b/src/backend/InvenTree/InvenTree/schema.py
index 55fa008349..edea87bfef 100644
--- a/src/backend/InvenTree/InvenTree/schema.py
+++ b/src/backend/InvenTree/InvenTree/schema.py
@@ -282,7 +282,7 @@ def postprocess_print_stats(result, generator, request, public):
scopes = {}
for path, details in rlt_dict.items():
if details['oauth']:
- for scope in details['oauth']:
+ for scope in list(details['oauth']):
if scope not in scopes:
scopes[scope] = []
scopes[scope].append(path)
@@ -343,7 +343,7 @@ def schema_for_view_output_options(view_class):
return extended_view
-def exclude_from_schema(klass: type, alternative_path: str) -> type:
+def exclude_from_schema(klass: type[Any], alternative_path: str) -> type[Any]:
"""Decorator to exclude a view from the OpenAPI schema.
This is used to hide legacy endpoints from the schema, while still retaining them for backwards compatibility.
diff --git a/src/backend/InvenTree/InvenTree/setting/ldap.py b/src/backend/InvenTree/InvenTree/setting/ldap.py
index 6e6f57989f..3b39179701 100644
--- a/src/backend/InvenTree/InvenTree/setting/ldap.py
+++ b/src/backend/InvenTree/InvenTree/setting/ldap.py
@@ -9,8 +9,8 @@ def get_ldap_config(debug: bool = False) -> dict:
The returned settings will be updated into the globals() object,
and will be used to configure the LDAP authentication backend.
"""
- import django_auth_ldap.config # type: ignore[unresolved-import]
- import ldap # type: ignore[unresolved-import]
+ import django_auth_ldap.config # ty: ignore[unresolved-import]
+ import ldap # ty: ignore[unresolved-import]
# get global options from dict and use ldap.OPT_* as keys and values
global_options_dict = get_setting(
diff --git a/src/backend/InvenTree/InvenTree/settings.py b/src/backend/InvenTree/InvenTree/settings.py
index d5f643594c..06ba9dfc64 100644
--- a/src/backend/InvenTree/InvenTree/settings.py
+++ b/src/backend/InvenTree/InvenTree/settings.py
@@ -851,6 +851,7 @@ valid_cookie_modes = ['lax', 'strict', 'none']
COOKIE_MODE = COOKIE_MODE.capitalize() if COOKIE_MODE in valid_cookie_modes else False
# Additional CSRF settings
+CSRF_FAILURE_VIEW = 'InvenTree.middleware.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_COOKIE_NAME = 'csrftoken'
diff --git a/src/backend/InvenTree/InvenTree/test_middleware.py b/src/backend/InvenTree/InvenTree/test_middleware.py
index 410822d3cf..b6b89cf31d 100644
--- a/src/backend/InvenTree/InvenTree/test_middleware.py
+++ b/src/backend/InvenTree/InvenTree/test_middleware.py
@@ -2,8 +2,7 @@
from unittest.mock import patch
-from django.conf import settings
-from django.http import Http404
+from django.http import Http404, HttpRequest
from django.urls import reverse
from error_report.models import Error
@@ -289,18 +288,63 @@ class MiddlewareTests(InvenTreeTestCase):
response, 'window.INVENTREE_SETTINGS', status_code=500
)
- # Log stuff # TODO remove
- print(
- '###DBG-TST###',
- 'site',
- settings.SITE_URL,
- 'trusted',
- settings.CSRF_TRUSTED_ORIGINS,
- )
-
# Check that the correct step triggers the error message
self.assertContains(
response,
'INVE-E7: The visited path `http://testserver` does not match',
status_code=500,
)
+
+ def test_csrf_failure(self):
+ """Test the custom CSRF failure handler."""
+ from InvenTree.middleware import csrf_failure
+
+ EXPECTED_DETAIL = 'CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly.'
+
+ def make_request(path, headers=None):
+ request = HttpRequest()
+ request.path = path
+ request.META['SERVER_NAME'] = 'testserver'
+ request.META['SERVER_PORT'] = '80'
+ for key, value in (headers or {}).items():
+ request.META[f'HTTP_{key.upper().replace("-", "_")}'] = value
+ return request
+
+ # API path -> JSON 403 with meaningful message
+ response = csrf_failure(
+ make_request('/api/part/'), reason='origin check failed'
+ )
+ self.assertEqual(response.status_code, 403)
+ import json
+
+ data = json.loads(response.content)
+ self.assertEqual(data['detail'], EXPECTED_DETAIL)
+
+ # allauth headless path -> JSON 403
+ response = csrf_failure(make_request('/_allauth/browser/v1/auth/login'))
+ self.assertEqual(response.status_code, 403)
+ data = json.loads(response.content)
+ self.assertEqual(data['detail'], EXPECTED_DETAIL)
+
+ # Accept: application/json header -> JSON 403
+ response = csrf_failure(
+ make_request('/some/other/path/', {'Accept': 'application/json'}),
+ reason='origin check failed',
+ )
+ self.assertEqual(response.status_code, 403)
+ data = json.loads(response.content)
+ self.assertEqual(data['detail'], EXPECTED_DETAIL)
+
+ # Content-Type: application/json header -> JSON 403
+ response = csrf_failure(
+ make_request('/some/other/path/', {'Content-Type': 'application/json'}),
+ reason='origin check failed',
+ )
+ self.assertEqual(response.status_code, 403)
+ data = json.loads(response.content)
+ self.assertEqual(data['detail'], EXPECTED_DETAIL)
+
+ # Plain browser request -> falls back to Django default CSRF page (403 HTML, not JSON)
+ response = csrf_failure(make_request('/web/'), reason='origin check failed')
+ self.assertEqual(response.status_code, 403)
+ self.assertNotIn(b'application/json', response.get('Content-Type', '').encode())
diff --git a/src/backend/InvenTree/InvenTree/version.py b/src/backend/InvenTree/InvenTree/version.py
index 68072e2fc6..55bfefe838 100644
--- a/src/backend/InvenTree/InvenTree/version.py
+++ b/src/backend/InvenTree/InvenTree/version.py
@@ -15,10 +15,10 @@ from datetime import timedelta as td
from .api_version import INVENTREE_API_TEXT, INVENTREE_API_VERSION
# InvenTree software version
-INVENTREE_SW_VERSION = '1.4.0 dev'
+INVENTREE_SW_VERSION = '1.5.0 dev'
# Minimum supported Python version
-MIN_PYTHON_VERSION = (3, 11)
+MIN_PYTHON_VERSION = (3, 12)
logger = logging.getLogger('inventree')
diff --git a/src/backend/InvenTree/build/api.py b/src/backend/InvenTree/build/api.py
index 1e18727af1..a0edd054a1 100644
--- a/src/backend/InvenTree/build/api.py
+++ b/src/backend/InvenTree/build/api.py
@@ -3,7 +3,7 @@
from __future__ import annotations
from django.contrib.auth.models import User
-from django.db.models import F, OuterRef, Q, Subquery, Sum
+from django.db.models import DecimalField, F, OuterRef, Q, Subquery, Sum
from django.db.models.functions import Coalesce
from django.urls import include, path
from django.utils.translation import gettext_lazy as _
@@ -494,9 +494,25 @@ class BuildLineFilter(FilterSet):
def filter_allocated(self, queryset, name, value):
"""Filter by whether each BuildLine is fully allocated."""
+ allocated_subquery = (
+ BuildItem.objects
+ .filter(build_line=OuterRef('pk'))
+ .values('build_line')
+ .annotate(total=Sum('quantity'))
+ .values('total')
+ )
+
+ queryset = queryset.alias(
+ allocated_quantity=Coalesce(
+ Subquery(allocated_subquery), 0, output_field=DecimalField()
+ )
+ )
+
if str2bool(value):
- return queryset.filter(allocated__gte=F('quantity') - F('consumed'))
- return queryset.filter(allocated__lt=F('quantity') - F('consumed'))
+ return queryset.filter(
+ allocated_quantity__gte=F('quantity') - F('consumed')
+ )
+ return queryset.filter(allocated_quantity__lt=F('quantity') - F('consumed'))
consumed = rest_filters.BooleanFilter(label=_('Consumed'), method='filter_consumed')
@@ -528,7 +544,9 @@ class BuildLineFilter(FilterSet):
)
queryset = queryset.alias(
- allocated_quantity=Coalesce(Subquery(allocated_subquery), 0)
+ allocated_quantity=Coalesce(
+ Subquery(allocated_subquery), 0, output_field=DecimalField()
+ )
)
# A query filter construct to determine the total quantity available for this BuildLine,
diff --git a/src/backend/InvenTree/common/admin.py b/src/backend/InvenTree/common/admin.py
index e35d269f0b..44ac152760 100644
--- a/src/backend/InvenTree/common/admin.py
+++ b/src/backend/InvenTree/common/admin.py
@@ -115,7 +115,8 @@ class BarcodeScanResultAdmin(admin.ModelAdmin):
class ProjectCodeAdmin(admin.ModelAdmin):
"""Admin settings for ProjectCode."""
- list_display = ('code', 'description')
+ list_display = ('code', 'description', 'active')
+ list_filter = ('active',)
search_fields = ('code', 'description')
diff --git a/src/backend/InvenTree/common/api.py b/src/backend/InvenTree/common/api.py
index 94a1ec8335..f2a1a4c636 100644
--- a/src/backend/InvenTree/common/api.py
+++ b/src/backend/InvenTree/common/api.py
@@ -491,7 +491,7 @@ class ProjectCodeList(DataExportViewMixin, ListCreateAPI):
filter_backends = SEARCH_ORDER_FILTER
ordering_fields = ['code']
-
+ filterset_fields = ['active']
search_fields = ['code', 'description']
@@ -577,7 +577,7 @@ class CustomUnitViewset(DataExportViewMixin, viewsets.ModelViewSet):
return {
'name': k,
'is_alias': reg.get_name(k) == k,
- 'compatible_units': [str(a) for a in unit.compatible_units()],
+ 'compatible_units': [str(a) for a in unit.compatible_units()], # ty:ignore[missing-argument]
'isdimensionless': unit.dimensionless,
}
diff --git a/src/backend/InvenTree/common/migrations/0045_projectcode_active.py b/src/backend/InvenTree/common/migrations/0045_projectcode_active.py
new file mode 100644
index 0000000000..c0a8461972
--- /dev/null
+++ b/src/backend/InvenTree/common/migrations/0045_projectcode_active.py
@@ -0,0 +1,22 @@
+# Generated by Django 5.2.15 on 2026-06-25 03:13
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("common", "0044_notificationmessage_charfield_pk"),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="projectcode",
+ name="active",
+ field=models.BooleanField(
+ default=True,
+ help_text="Is this project code active?",
+ verbose_name="Active",
+ ),
+ ),
+ ]
diff --git a/src/backend/InvenTree/common/models.py b/src/backend/InvenTree/common/models.py
index 3e903ac9d2..b07dd08eeb 100644
--- a/src/backend/InvenTree/common/models.py
+++ b/src/backend/InvenTree/common/models.py
@@ -181,6 +181,12 @@ class ProjectCode(InvenTree.models.InvenTreeMetadataModel):
help_text=_('Project description'),
)
+ active = models.BooleanField(
+ default=True,
+ verbose_name=_('Active'),
+ help_text=_('Is this project code active?'),
+ )
+
responsible = models.ForeignKey(
users.models.Owner,
on_delete=models.SET_NULL,
diff --git a/src/backend/InvenTree/common/serializers.py b/src/backend/InvenTree/common/serializers.py
index 3c0ef9e859..f37e46e594 100644
--- a/src/backend/InvenTree/common/serializers.py
+++ b/src/backend/InvenTree/common/serializers.py
@@ -417,7 +417,14 @@ class ProjectCodeSerializer(DataImportExportSerializerMixin, InvenTreeModelSeria
"""Meta options for ProjectCodeSerializer."""
model = common_models.ProjectCode
- fields = ['pk', 'code', 'description', 'responsible', 'responsible_detail']
+ fields = [
+ 'pk',
+ 'code',
+ 'description',
+ 'active',
+ 'responsible',
+ 'responsible_detail',
+ ]
responsible_detail = OwnerSerializer(
source='responsible', read_only=True, allow_null=True
diff --git a/src/backend/InvenTree/common/setting/system.py b/src/backend/InvenTree/common/setting/system.py
index d6fe3e3a6b..f950129187 100644
--- a/src/backend/InvenTree/common/setting/system.py
+++ b/src/backend/InvenTree/common/setting/system.py
@@ -793,6 +793,14 @@ SYSTEM_SETTINGS: dict[str, InvenTreeSettingsKeyType] = {
'default': False,
'validator': bool,
},
+ 'STOCK_MERGE_ON_TRANSFER': {
+ 'name': _('Merge stock with existing stock on transfer by default'),
+ 'description': _(
+ 'Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)'
+ ),
+ 'default': False,
+ 'validator': bool,
+ },
'BUILDORDER_REFERENCE_PATTERN': {
'name': _('Build Order Reference Pattern'),
'description': _('Required pattern for generating Build Order reference field'),
diff --git a/src/backend/InvenTree/common/setting/type.py b/src/backend/InvenTree/common/setting/type.py
index 0e788c017f..3a704d5e24 100644
--- a/src/backend/InvenTree/common/setting/type.py
+++ b/src/backend/InvenTree/common/setting/type.py
@@ -1,19 +1,7 @@
"""Types for settings."""
-import sys
from collections.abc import Callable
-from typing import Any, TypedDict
-
-if sys.version_info >= (3, 11):
- from typing import NotRequired # pragma: no cover
-else:
-
- class NotRequired: # pragma: no cover
- """NotRequired type helper is only supported with Python 3.11+."""
-
- def __class_getitem__(cls, item):
- """Return the item."""
- return item
+from typing import Any, NotRequired, TypedDict
class SettingsKeyType(TypedDict, total=False):
diff --git a/src/backend/InvenTree/common/tests.py b/src/backend/InvenTree/common/tests.py
index 2bd0c41db8..6935e3b475 100644
--- a/src/backend/InvenTree/common/tests.py
+++ b/src/backend/InvenTree/common/tests.py
@@ -1752,6 +1752,22 @@ class ProjectCodesTest(InvenTreeAPITestCase):
str(response.data['code']),
)
+ def test_filter_active(self):
+ """Test that the 'active' field can be filtered via the API."""
+ # Mark one code as inactive
+ code = ProjectCode.objects.first()
+ code.active = False
+ code.save()
+
+ active_count = ProjectCode.objects.filter(active=True).count()
+ inactive_count = ProjectCode.objects.filter(active=False).count()
+
+ response = self.get(self.url, data={'active': True}, expected_code=200)
+ self.assertEqual(len(response.data), active_count)
+
+ response = self.get(self.url, data={'active': False}, expected_code=200)
+ self.assertEqual(len(response.data), inactive_count)
+
def test_write_access(self):
"""Test that non-staff users have read-only access."""
# By default user has staff access, can create a new project code
diff --git a/src/backend/InvenTree/company/migrations/0019_auto_20200413_0642.py b/src/backend/InvenTree/company/migrations/0019_auto_20200413_0642.py
index 0fc852354b..d4d33f9697 100644
--- a/src/backend/InvenTree/company/migrations/0019_auto_20200413_0642.py
+++ b/src/backend/InvenTree/company/migrations/0019_auto_20200413_0642.py
@@ -15,7 +15,7 @@ TESTING = 'test' in sys.argv
def clear():
if not TESTING: # pragma: no cover
- os.system('cls' if os.name == 'nt' else 'clear')
+ os.system('cls' if os.name == 'nt' else 'clear') # ty:ignore[deprecated]
def reverse_association(apps, schema_editor): # pragma: no cover
diff --git a/src/backend/InvenTree/data_exporter/mixins.py b/src/backend/InvenTree/data_exporter/mixins.py
index f40ee113f2..0d58d0efff 100644
--- a/src/backend/InvenTree/data_exporter/mixins.py
+++ b/src/backend/InvenTree/data_exporter/mixins.py
@@ -99,6 +99,10 @@ class DataExportSerializerMixin:
fields.update(self.get_child_fields(name, field))
continue
+ # Skip 'many' fields (e.g. nested serializers)
+ if getattr(field, 'many', False):
+ continue
+
fields[name] = field
return fields
diff --git a/src/backend/InvenTree/importer/models.py b/src/backend/InvenTree/importer/models.py
index 00f361be02..ce64e0677d 100644
--- a/src/backend/InvenTree/importer/models.py
+++ b/src/backend/InvenTree/importer/models.py
@@ -6,6 +6,7 @@ from datetime import datetime
from typing import Optional
from django.contrib.auth.models import User
+from django.core.exceptions import FieldDoesNotExist
from django.core.exceptions import ValidationError as DjangoValidationError
from django.core.validators import FileExtensionValidator
from django.db import models
@@ -200,7 +201,7 @@ class DataImportSession(models.Model):
related_field = model_class._meta.get_field(field_name)
model = related_field.remote_field.model
return model
- except (AttributeError, models.FieldDoesNotExist):
+ except (AttributeError, FieldDoesNotExist):
return None
def extract_columns(self) -> None:
diff --git a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po
index d5359a3a0d..42d29c23fd 100644
--- a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Language: ar_SA\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "نقطة نهاية API غير موجودة"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "المستخدم ليس لديه الصلاحية لعرض هذا النموذج"
@@ -65,11 +65,11 @@ msgstr "تأكيد البريد الإلكتروني"
msgid "You must type the same email each time."
msgstr "يجب عليك كتابة نفس البريد الإلكتروني كل مرة."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "عنوان البريد الإلكتروني الرئيسي المقدم غير صالح."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "لم تتم الموافقة على نطاق البريد الإلكتروني المقدم."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "تعذّر تحويل {original} إلى {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "الكمية المقدمة غير صحيحة"
@@ -105,22 +105,22 @@ msgstr "أدخل التاريخ"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "ملاحظات"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "القيمة '{name}' لا تظهر في تنسيق النمط"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "القيمة المقدمة لا تتطابق مع النمط المطلوب: "
@@ -164,51 +164,51 @@ msgstr "إزالة علامات HTML من هذه القيمة"
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "خطأ فى الاتصال"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr "البريد الإلكتروني"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "خطأ في تشغيل التحقق من صحة الإضافات"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "البيانات الوصفية يجب أن تكون كائن القالب بايثون"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr ""
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr ""
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr ""
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr ""
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr ""
@@ -521,11 +525,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr ""
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr ""
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr ""
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr ""
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr ""
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -883,8 +887,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr ""
@@ -900,7 +904,7 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr ""
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr ""
@@ -1654,8 +1658,8 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr ""
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1686,7 +1690,7 @@ msgstr ""
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr ""
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr ""
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr ""
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr ""
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po
index aea6591f9e..525e23765e 100644
--- a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Language: bg_BG\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "Не е намерена крайна точка на API"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Елементите трябва да се предоставят, като списък"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Потребителя няма нужното разрешение, за да вижда този модел"
@@ -65,11 +65,11 @@ msgstr "Потвърждение на електронната поща"
msgid "You must type the same email each time."
msgstr "Трябва ла въведете една и съща електронна поща."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Въведената основна електронна поща е невалидна."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Въведеният домейн на електронната поща не е утвърден."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Преобразуването на {original} в {unit} не беше успешно"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Въведена е недопустима стойност"
@@ -105,22 +105,22 @@ msgstr "Въведи дата"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Бележки"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Значението '{name}' не отговаря на шаблона"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Въведеното значение не отговаря на задължителния шаблон: "
@@ -164,51 +164,51 @@ msgstr "Премахнете HTML маркерите от тази стойно
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Грешка при съединението"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Сървърът отговари с невалиден статусен код"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Възникна изключение"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Сървърът отговори с невалидна стойност за дължината на съдържанието (Content-Length)"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Размерът на изображението е твърде голям"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Сваляното на изображение превиши максималния размер"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Отдалеченият сървър върна празен отговор"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Трябва да активирате двойно оторизиране преди да направите, каквото и да е."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr ""
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr ""
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr ""
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr ""
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr ""
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr ""
@@ -521,11 +525,11 @@ msgstr "Китайски (опростен)"
msgid "Chinese (Traditional)"
msgstr "Китайски (традиционен)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr ""
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "Част"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr ""
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr ""
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr ""
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr ""
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -883,8 +887,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr ""
@@ -900,7 +904,7 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr ""
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Потребител"
@@ -1654,8 +1658,8 @@ msgstr "Потребител"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr ""
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1686,7 +1690,7 @@ msgstr ""
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr ""
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr ""
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr ""
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Изпратено"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Цялостна наличност"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po
index e1d7e2996f..56fd688344 100644
--- a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API endpoint nebyl nalezen"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr "Seznam položek musí být k dispozici pro hromadnou operaci"
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Položky musí být uvedeny jako seznam"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Zadán neplatný seznam položek"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Všechny filtry musí být použity s Pravda"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Zadaným kritériím neodpovídají žádné položky"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Nebyla poskytnuta žádná data"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Toto pole musí být unikátní."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Uživatel nemá právo zobrazit tento model"
@@ -65,11 +65,11 @@ msgstr "Potvrzení emailové adresy"
msgid "You must type the same email each time."
msgstr "Pokaždé musíte zadat stejný email."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Zadaná primární e-mailová adresa je neplatná."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Zadaná e-mailová doména není povolena."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Nelze převést {original} na {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Vyplněno neplatné množství"
@@ -105,22 +105,22 @@ msgstr "Zadejte datum"
msgid "Invalid decimal value"
msgstr "Neplaté desetinné číslo"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Poznámky"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Hodnota '{name}' neodpovídá formátu vzoru"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Poskytnutá hodnota neodpovídá požadovanému vzoru: "
@@ -164,51 +164,51 @@ msgstr "Odstranit HTML tagy z této hodnoty"
msgid "Data contains prohibited markdown content"
msgstr "Data obsahují zakázaný markdown obsah"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr "Neplatná URH: žádný název hostitele"
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr "Neplatná URL: nelze zjistit název hostitele"
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr "URL směřuje na soukromou nebo rezervovanou IP adresu"
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr "Příliš mnoho přesměrování"
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Chyba spojení"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Server odpověděl s neplatným stavovým kódem"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Došlo k výjimce"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Server odpověděl s neplatnou hodnotou Content-Length"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Velikost obrázku je příliš velká"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Stahování obrázku překročilo maximální velikost"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Vzdálený server vrátil prázdnou odpověď"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Zadaná URL adresa není platný soubor obrázku"
@@ -220,117 +220,121 @@ msgstr "Přihlásit se do aplikace"
msgid "Email"
msgstr "E-mail"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr "Ověření CSRF se nezdařilo. Ujistěte se, že INVENTREE_SITE_URL a INVENTREE_TRUSTED_ORIGINS jsou nastaveny správně."
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Před tím, než budete dělat cokoli jiného, musíte zapnout dvoufaktorové ověřování."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Chyba při ověření pluginu"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadata musí být objekt python dict"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Metadata pluginu"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Pole metadat JSON pro použití externími pluginy"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Nesprávně naformátovaný vzor"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Neznámý formát klíče"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Chybí požadovaný klíč"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Referenční pole nemůže být prázdné"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Referenční číslo musí odpovídat požadovanému vzoru"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Referenční číslo je příliš velké"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Neplatný výběr"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Název"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Popis"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Popis (volitelně)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Cesta"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Duplicitní názvy nemohou existovat pod stejným nadřazeným názvem"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Poznámky (volitelné)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Data čárového kódu"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Data čárového kódu třetí strany"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Hash čárového kódu"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Jedinečný hash dat čárového kódu"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Nalezen existující čárový kód"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Chyba serveru"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Server zaznamenal chybu."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Musí být platné číslo"
msgid "Currency"
msgstr "Měna"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Vyberte měnu z dostupných možností"
@@ -521,11 +525,11 @@ msgstr "Čínština (zjednodušená)"
msgid "Chinese (Traditional)"
msgstr "Čínština (tradiční)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Dostupná aktualizace"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Aktualizace pro InvenTree je k dispozici"
@@ -537,7 +541,7 @@ msgstr "Neplatná fyzikální jednotka"
msgid "Not a valid currency code"
msgstr "Neplatný kód měny"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Stav objednávky"
@@ -546,23 +550,23 @@ msgstr "Stav objednávky"
msgid "Parent Build"
msgstr "Nadřazená sestava"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Zahrnout varianty"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Zahrnout varianty"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Zahrnout varianty"
msgid "Part"
msgstr "Díl"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Kategorie"
@@ -593,7 +597,7 @@ msgstr "Kategorie"
msgid "Ancestor Build"
msgstr "Sestava předků"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Přiřazeno mě"
@@ -601,11 +605,11 @@ msgstr "Přiřazeno mě"
msgid "Assigned To"
msgstr "Přiřazeno"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Vytvořeno před"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Vytvořeno po"
@@ -641,99 +645,99 @@ msgstr "Dokončeno před"
msgid "Completed after"
msgstr "Dokončeno po"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Min. datum"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Max datum"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Vyloučit strom"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Sestavení musí být zrušeno před odstraněním"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Spotřební materiál"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Volitelné"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Sestava"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Sledováno"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Testovatelné"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Objednávka nevyřízená"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Přiděleno"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Spotřebováno"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Dostupné"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "Na objednávku"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr "Sestava nenalezena"
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Výrobní příkaz"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Lokace"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Výstup"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Filtrovat podle ID výstupní položky zásoby. Použijte 'null' pro nalezení odinstalovaných položek sestavení."
@@ -773,9 +777,9 @@ msgstr "Cílové datum musí být po datu zahájení"
msgid "Build Order Reference"
msgstr "Referenční číslo výrobního příkazu"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Referenční číslo prodejní objednávky"
msgid "Sales Order to which this build is allocated"
msgstr "Prodejní objednávka, které je tato stavba přiřazena"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Zdrojové umístění"
@@ -821,7 +825,7 @@ msgstr "Externí sestavení"
msgid "This build order is fulfilled externally"
msgstr "Tento výrobní příkaz je plněn externě"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Cílová lokace"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Stavový kód sestavení"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Kód dávky"
@@ -883,8 +887,8 @@ msgstr "Cílové datum dokončení"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Cílové datum dokončení sestavení. Sestavení bude po tomto datu v prodlení."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Datum dokončení"
@@ -900,7 +904,7 @@ msgstr "Vystavil"
msgid "User who issued this build order"
msgstr "Uživatel, který vystavil tento výrobní příkaz"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Priorita tohoto výrobního příkazu"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Kód projektu"
@@ -962,9 +966,9 @@ msgstr "Výstup neodpovídá výrobnímu příkazu"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Množství musí být vyšší než nula"
@@ -999,7 +1003,7 @@ msgstr "Vytvořit objekt"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Množství musí být 1 pro zřetězený sklad"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Zabrané množství ({q}) nesmí překročit dostupné skladové množství ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Skladová položka je nadměrně zabrána"
@@ -1057,8 +1061,8 @@ msgstr "Skladová položka je nadměrně zabrána"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Skladové položky"
@@ -1082,7 +1086,7 @@ msgstr "Cílová skladová položka"
msgid "Build Level"
msgstr "Úroveň sestavení"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Název dílu"
@@ -1139,7 +1143,7 @@ msgstr "Automaticky zvolit sériová čísla"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Automaticky přidělit požadované položky s odpovídajícími sériovými čísly"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Následující sériová čísla již existují nebo jsou neplatná"
@@ -1272,7 +1276,7 @@ msgstr "Řádková položka sestavy"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part musí ukazovat na stejný díl jako výrobní příkaz"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Položka musí být skladem"
@@ -1385,8 +1389,8 @@ msgstr "Informace instalace"
msgid "Build"
msgstr "Sestavení"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Díl dodavatele"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Povolit varianty"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Položka kusovníku"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "Ve výrobě"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "Naplánováno na sestavení"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Externí zásoby"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Dostupné zásoby"
@@ -1527,31 +1531,31 @@ msgstr "Opožděný výrobní příkaz"
msgid "Build order {bo} is now overdue"
msgstr "Objednávka sestavy {bo} je nyní opožděná"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr "Má miniaturu"
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "Je odkaz"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "Je soubor"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "Uživatel nemá oprávnění k odstranění těchto příloh"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr "Uživatel nemá povolení k úpravě této přílohy"
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "Uživatel nemá oprávnění k odstranění této přílohy"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Tento výběr je uzamčen"
@@ -1571,8 +1575,8 @@ msgstr "Nejsou uvedeny žádné platné kódy měn"
msgid "No plugin"
msgstr "Žádný plugin"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr "Tagy"
@@ -1645,8 +1649,8 @@ msgstr "Klíčový text musí být jedinečný"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Uživatel"
@@ -1654,8 +1658,8 @@ msgstr "Uživatel"
msgid "Price break quantity"
msgstr "Množství cenové slevy"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Cena"
@@ -1677,8 +1681,8 @@ msgstr "Název tohoto webhooku"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktivní"
@@ -1686,7 +1690,7 @@ msgstr "Aktivní"
msgid "Is this webhook active"
msgstr "Je tento webhook aktivní"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token"
@@ -1756,7 +1760,7 @@ msgstr "Název"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definice"
msgid "Unit definition"
msgstr "Definice jednotky"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Příloha"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "Logický klíč statusu, který je rovný tomuto vlastnímu statusu v podnikové logice"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Hodnota"
@@ -2172,7 +2176,7 @@ msgstr "Platné volby pro tento parametr (oddělené čárkami)"
msgid "Selection list for this parameter"
msgstr "Seznam výběru pro tento parametr"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Povoleno"
@@ -2204,8 +2208,8 @@ msgstr "ID modelu"
msgid "ID of the target model for this parameter"
msgstr "ID cílového modelu pro tento parametr"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Šablona"
@@ -2262,7 +2266,7 @@ msgstr "Datum a čas skenování čárového kódu"
msgid "URL endpoint which processed the barcode"
msgstr "Koncový bod URL, který zpracoval čárový kód"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Kontext"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Data z odezvy z čárového kódu"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Výsledek"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "Emailové vlákna"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Klíč"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} zrušeno"
msgid "A order that is assigned to you was canceled"
msgstr "Objednávka, která je vám přidělena, byla zrušena"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Přijaté položky"
@@ -2524,7 +2528,7 @@ msgstr "Název souboru"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Typ modelu"
@@ -2669,8 +2673,8 @@ msgstr "Jak často aktualizovat směnné kurzy (pro vypnutí nastavte na nulu)"
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "dny"
@@ -2914,8 +2918,8 @@ msgstr "Díly jsou ve výchozím nastavení šablony"
msgid "Parts can be assembled from other components by default"
msgstr "Díly lze ve výchozím nastavení sestavit z jiných komponentů"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Komponent"
@@ -2931,7 +2935,7 @@ msgstr "Možné zakoupit"
msgid "Parts are purchaseable by default"
msgstr "Díly jsou zakoupitelné ve výchozím nastavení"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Prodejné"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Zaznamenávat chyby, které se vyskytnou při vytváření reportů"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Velikost stránky"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Umožnit přesun skladových položek, které nejsou na skladě, mezi skladovými místy"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Referenční vzor objednávky sestavy"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Požadovaný vzor pro generování referenčního pole Objednávka sestavy"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Vyžadovat odpovědného vlastníka"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Ke každé objednávce musí být přiřazen odpovědný vlastník"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Vyžadovat aktivní díl"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Zabránit vytváření výrobních příkazů pro neaktivní díly"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Vyžadovat uzamčený díl"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Zabránit vytváření výrobních příkazů pro odemčené díly"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "Vyžadovat schválený kusovník"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Zabránit vytváření výrobních příkazů, dokud není schválen kusovník"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "Vyžadovat uzavření podobjednávek"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Zabránit dokončení výrobního příkazu dokud nebudou uzavřeny všechny podpříkazy"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "Externí výrobní příkazy"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "Povolit funkcionalitu externích výrobních příkazů"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr "Vyžadovat externí výrobní příkazy"
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr "Vyžadovat externí výrobní příkaz při objenání montovaných dílů od externího dodavatele"
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Blokovat, dokud testy neprojdou"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Zabránit dokončení výstupů sestavy, dokud neprojdou všechny požadované testy"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Povolit vracení objednávek"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Povolit funkci vrácení objednávky v uživatelském rozhraní"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Referenční vzor návratové objednávky"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Požadovaný vzor pro vygenerování referenčního pole Návratová objednávka"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Úprava dokončených návratových objednávek"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Umožnit úpravu návratových objednávek po jejich dokončení"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Referenční vzor prodejní objednávky"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Požadovaný vzor pro generování referenčního pole prodejní objednávky"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Výchozí přeprava prodejní objednávky"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Povolit vytvoření výchozí přepravy s prodejními objednávkami"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Úprava dokončených prodejních objednávek"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Umožnit úpravy prodejních objednávek po jejich odeslání nebo dokončení"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "Zásilka vyžaduje kontrolu"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "Zabránit dokončení zásilek dokud nebudou zkontrolovány položky"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Označit odeslané objednávky jako dokončené"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Prodejní objednávky označené jako odeslané se automaticky dokončí a obejdou stav „odesláno“"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr "Povolit převodní příkazy"
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr "Povolit funkci převodních příkazů v uživatelském rozhraní"
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr "Referenční vzor převodního příkazu"
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr "Požadovaný vzor pro generování pole převodního příkazu"
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr "Blokovat nekompletné testy položky"
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr "Zabránit přiřazení skladových položek do prodejních objednávek, pokud jsou požadované testy neúplné"
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Referenční vzor nákupní objednávky"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Požadovaný vzor pro generování referenčního pole nákupní objednávky"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Úprava dokončených nákupních objednávek"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Umožnit úpravy nákupních objednávek po jejich odeslání nebo dokončení"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Převést měnu"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "Převést hodnotu předmětu na základní měnu při příjmu zásob"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Automatické dokončování nákupních objednávek"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Automaticky označit nákupní objednávky jako kompletní, jakmile jsou přijaty všechny řádkové položky"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Povolit pole zapomenutého hesla"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Povolení funkce zapomenutého hesla na přihlašovacích stránkách"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Povolit registrace"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Povolit samoregistraci uživatelů na přihlašovacích stránkách"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Povolit SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Povolit SSO na přihlašovacích stránkách"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Povolit SSO registraci"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Povolit samoregistraci uživatelů prostřednictvím SSO na přihlašovacích stránkách"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "Povolit synchronizaci SSO skupin"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Povolit synchronizaci InvenTree skupin se skupinami poskytnutými IdP"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "klíč SSO skupiny"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "Název deklarace skupinového atributu poskytnutého IdP"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "mapa SSO skupiny"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "Mapování ze skupin SSO do místních InvenTree skupin. Pokud místní skupina neexistuje, bude vytvořena."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Odstranit skupiny mimo SSO"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "Zdali mají být skupiny přiřazené uživateli odstraněny pokud nemají backend of IdP. Vypnutí tohoto nastavení můžu způsobit problémy se zabezpečením"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Vyžadován e-mail"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Požadovat, aby uživatel při registraci zadal e-mail"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Automaticky vyplnit SSO uživatele"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Automaticky vyplnit údaje o uživateli z údajů o účtu SSO"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Mail dvakrát"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Při registraci dvakrát požádat uživatele o zadání e-mailu"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Heslo dvakrát"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Při registraci dvakrát požádat uživatele o heslo"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Povolené domény"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Omezit registraci na určité domény (oddělené čárkou a začínající @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Skupina při registraci"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Skupina do které jsou nový uživatelé přiřazeni při registraci. Pokud je povolena synchronizace SSO skupin, tato skupina lze přiřadit pouze pokud nezle přiřadit skupinu od IdP."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Vynutit MFA"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Uživatelé musí používat vícefaktorové zabezpečení."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr "Povolení tohoto nastavení bude vyžadovat více fázové ověření u všech uživatelů. Všechny relace budou okamžitě ukončeny."
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Zkontrolovat pluginy při spuštění"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Zkontrolujte, zda jsou při spuštění nainstalovány všechny pluginy - povolit v kontejnerových prostředích"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Zkontrolovat aktualizace pluginů"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Povolit pravidelné kontroly aktualizací nainstalovaných pluginů"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Povolit integraci URL"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Povolit plug-inům přidávat trasy URL"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Povolit integraci navigace"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Povolit integrování pluginů do navigace"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Povolit integraci aplikací"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Povolit pluginům přidávát aplikace"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Povolit integraci plánu"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Povolit pluginům spouštění naplánovaných úloh"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Povolit integraci událostí"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Povolit pluginům reagovat na interní události"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Povolit rozhraní intergace"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Povolit integrování pluginů do uživatelského rozhraní"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "Povolit integraci emailu"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "Povolit pluginům zpracování odchozích/příchozích emailů"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "Povolit projektové kódy"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Povolit projektové kódy pro sledování projektů"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr "Povolit inventuru"
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "Povolit funkcionalitu pro zaznamenávání historických stavů zásob a hodnoty"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Vyloučit externí umístění"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Vyloučit skladové položky z externích lokací z inventury"
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Perioda automatické inventury"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr "Počet dní mezi automatickým záznamem inventury"
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr "Odstranit staré záznamy inventur"
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr "Odstranit záznamy inventur starší než zadaný počet dní"
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr "Interval odstranění inventury"
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr "Záznamy inventur budou odstraněny po zadaném počtu dní"
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr "Odstranit staré záznamy sledování zásob"
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr "Odstranit staré záznamy sledování zásob starší než zadaný počet dní"
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr "Interval odstranění sledování zásob"
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr "Záznamy sledování zásob budou odstraněny po zadaném počtu dní"
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Zobrazit celá jména uživatelů"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Zobrazit plná jména uživatelů namísto uživatelských jmen"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "Zobrazit uživatelské profily"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "Zobrazit profily uživatelů na jejich profilové stránce"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr "Týden začíná"
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr "Počáteční den v týdnu pro zobrazení v zobrazení kalendáře"
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr "Neděle"
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr "Pondělí"
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr "Úterý"
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr "Středa"
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr "Čtvrtek"
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr "Pátek"
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr "Sobota"
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr "Horizont kalendáře"
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr "Počet měsíců do budoucna, které se zobrazí v zobrazení kalendáře"
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr "měsíce"
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Povolit data zkušební stanice"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Povolit sběr dat ze zkušební stanice pro výsledky testů"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "Povolit ping stroje"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "Povolit pravidelný úkol pingu registrovaných strojů pro kontrolu jejich stavu"
@@ -4128,49 +4140,49 @@ msgstr "Zobrazit položky na poslední úrovni"
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr "Automaticky zobrazit položky místo podúrovní pro umístění nebo kategorie bez podkategorií"
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "Všechny modely"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "Není zadán typ modelu přílohy"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Neplatný typ přílohy modelu"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr "Velikost souboru překračuje maximální limit nahrávání {max_size} MB"
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr "Neplatný název souboru"
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "Minimální počet míst nesmí být větší než maximální počet míst"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "Maximální počet míst nesmí být menší než minimální počet míst"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Prázdná doména není povolena."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Neplatný název domény: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "Hodnota musí být napsána velkými písmeny"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "Hodnota musí být platný variabilní identifikátor"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "Dodavatel je aktivní"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Výrobce"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Společnost"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Kontaktní e-mailová adresa"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Kontakt"
@@ -4297,7 +4309,7 @@ msgstr "DIČ"
msgid "Company Tax ID"
msgstr "DIČ společnosti"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Adresa"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Odkaz na informace o adrese (externí)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Výrobce dílu"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Vyberte výrobce"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "MPN"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Odkazovaný díl výrobce musí odkazovat na stejný základní díl"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Dodavatel"
@@ -4448,7 +4460,7 @@ msgstr "Dodavatel"
msgid "Select supplier"
msgstr "Vyberte dodavatele"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Skladová evidence dodavatele"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimální poplatek (např. poplatek za skladování)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Balení"
@@ -4533,7 +4545,7 @@ msgstr "Výchozí měna používaná pro tohoto dodavatele"
msgid "Company Name"
msgstr "Jméno společnosti"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Skladem"
@@ -4643,11 +4655,11 @@ msgstr "Některá povinná pole nebyla namapována"
#: importer/models.py:413
msgid "Completed Row Count History"
-msgstr ""
+msgstr "Dokončená historie počtu řádků"
#: importer/models.py:416
msgid "Row Count History"
-msgstr ""
+msgstr "Historie počtu řádků"
#: importer/models.py:439
msgid "ID"
@@ -4722,7 +4734,7 @@ msgstr "Původní data řádku"
msgid "Errors"
msgstr "Chyby"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Platné"
@@ -4838,7 +4850,7 @@ msgstr "Počet kopií, které se mají tisknout pro každý štítek"
msgid "Connected"
msgstr "Připojeno"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Neznámý"
@@ -4942,7 +4954,7 @@ msgstr "Klíč vlastnosti"
msgid "Value of the property"
msgstr "Hodnota vlastnosti"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Skupina"
@@ -4966,118 +4978,118 @@ msgstr "Maximální pokrok"
msgid "Maximum value for progress type, required if type=progress"
msgstr "Maximální hodnota pro pokrok typu, vyžadováno pokud typ=pokrok"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Označení objednávky"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Vynikající"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Má projektový kód"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Vytvořil(a)"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Vytvořeno před"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Vytvořeno po"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "Má počáteční datum"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "Datum začátku před"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "Datum začátku po"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "Má cílové datum"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Cílové datum před"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Cílové datum po"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr "Aktualizováno před"
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr "Aktualizováno po"
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Má cenu"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Dokončeno před"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Dokončeno po"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "Externí výrobní příkaz"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Objednávka"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Objednávka byla dokončena"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Interní díl"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Objednávka čeká na vyřízení"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Dokončeno"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Má zásilku"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr "Zásilka nebyla nalezena"
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Nákupní objednávka"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Nákupní objednávka"
msgid "Sales Order"
msgstr "Prodejní objednávka"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Vratka"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr "Převodní příkaz"
@@ -5135,11 +5147,11 @@ msgstr "Adresa nesouhlasí s vybranou společností"
msgid "Order description (optional)"
msgstr "Popis objednávky (volitelné)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Vyberte kód projektu pro tuto objednávku"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Odkaz na externí stránku"
@@ -5151,7 +5163,7 @@ msgstr "Datum zahájení"
msgid "Scheduled start date for this order"
msgstr "Plánované datum zahájení této objednávky"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Cílené datum"
@@ -5184,487 +5196,487 @@ msgstr "Kontaktní bod pro tuto objednávku"
msgid "Company address for this order"
msgstr "Adresa společnosti pro tuto objednávku"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Číslo objednávky"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Stav"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Stav objednávky"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Společnost, od které se položky objednávají"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Reference dodavatele"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Referenční kód objednávky dodavatele"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "přijal"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Datum dokončení objednávky"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Místo určení"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Cílové místo pro přijaté položky"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Dodavatel dílu se musí shodovat s dodavatelem PO"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Řádková položka neodpovídá nákupní objednávce"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "Řádkové položce chybí propojený díl"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Množství musí být kladné"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr "Sériová čísla nemohou být přiřazena virtuálním dílům"
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr "Povolit jakékoliv zásoby (serializované nebo neserializované)"
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr "Pouze serializované zásoby"
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr "Pouze neserializované zásoby"
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Zákazník"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Společnost, jíž se položky prodávají"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Stav prodejní objednávky"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Reference zákazníka "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Referenční kód objednávky zákazníka"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Datum odeslání"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "odesláno společností"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "Objednávka je již dokončena"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "Objednávka je již zrušena"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Pouze otevřená objednávka může být označena jako kompletní"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Objednávku nelze dokončit, protože dodávky jsou nekompletní"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "Objednávka nemůže být dokončena, protože jsou neúplné přiřazení"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Objednávka nemůže být dokončena, protože jsou neúplné řádkové položky"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "Objednávka je uzamčena a nelze ji upravit"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Množství položky"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr "Číslo linky"
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr "Číslo řádku pro tuto položku (nepovinné)"
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Označení řádkové položky"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Poznámky k řádkovým položkám"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Cílové datum pro tuto řádkovou položku (pro použití cílového data z objednávky ponechte prázdné)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Popis řádkové položky (nepovinné)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Dodatečný kontext pro tento řádek"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Cena za jednotku"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "Řádková položka nákupní objednávky"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "Dodavatelský díl musí odpovídat dodavateli"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "Objednávka sestavení musí být označená jako externí"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "Objednávka sestavení může být propojena pouze s montážními díly"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "Výrobní příkaz musí odpovídat lince předmětu dílu"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr "Externí výrobní příkaz je vyžadován pro montážní díly"
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Díl dodavatele"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Doručeno"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Počet přijatých položek"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Nákupní cena"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Jednotková nákupní cena"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "Externí výrobní příkaz který má být splněn touto linkovou položkou"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "Nákupní příkaz extra linka"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "Řádková položka prodejní objednávky"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "K prodejní objednávce lze přiřadit pouze prodejné díly"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Prodejní cena"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Jednotková prodejní cena"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Odesláno"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Odeslané množství"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "Zásilka prodejní objednávky"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "Adresa zásilky musí odpovídat adrese zákazníka"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "Dodací adresa pro tuto zásilku"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Datum odeslání"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Datum doručení"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Datum doručení zásilky"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Kontroloval(a)"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Uživatel, který zkontroloval tuto zásilku"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Doprava"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Číslo zásilky"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Sledovací číslo"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Informace o sledování zásilky"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Číslo faktury"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Referenční číslo přiřazené faktury"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Zásilka již byla odeslána"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Zásilka nemá žádné přidělené skladové položky"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "Zásilka musí být zkontrolována než může být dokončená"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "Prodejní příkaz extra linka"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "Přidělení prodejní objednávky"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "Skladová položka nebyla přiřazena"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Nelze přidělit skladovou položku na řádek s jiným dílem"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Nelze přidělit skladovou položku na řádek bez dílu"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Přidělené množství nesmí překročit množství zásob"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Zabrané množství musí být větší než nula"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Množství musí být 1 pro serializovanou skladovou položku"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Prodejní objednávka neodpovídá zásilce"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Zásilka neodpovídá prodejní objednávce"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Řádek"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Odkaz na zásilku z prodejní objednávky"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Položka"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Vyberte skladovou položku pro přidělení"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Zadejte množství pro přidělení zásob"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Reference návratové objednávky"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Společnost, od které se vrací položky"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Stav návratové objednávky"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "Linkový předmět vratky"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "Zásobní položka musí být specifikována"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "Množství vratky přesahuje množstvní zásob"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "Množstvní vratky musí být více než nula"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Neplatné množství pro sériovou skladovou položku"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Vyberte položku pro vrácení od zákazníka"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Datum přijetí"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr "Datum příjetí této vratky"
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Výsledek"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Výsledky pro tuto položku"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Náklady spojené s návratem nebo opravou této položky"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "Vratka extra linka"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr "Reference převodního příkazu"
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr "Stav převodního příkazu"
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr "Zdroj pro přenášené položky"
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr "Cíl pro přenášené položky"
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr "Spotřebovat zásoby"
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr "Spíše než převést zásoby na místo určení, \"konzumovat\" je odebráním převedeného množství z přidělených zásob"
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr "Příkaz nelze dokončit bez uvedené cílové lokace"
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr "Příkaz nelze dokončit, dokud nebude plně přidělen"
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr "Převodní příkaz položky"
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr "převedeno"
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr "převedené množství"
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr "Přidělení převodního příkazu"
@@ -5692,7 +5704,7 @@ msgstr "Kopírovat extra řádky"
msgid "Copy extra line items from the original order"
msgstr "Kopírovat extra řádkové položky z původní objednávky"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Kopírovat parametry"
@@ -5714,11 +5726,11 @@ msgstr "Dokončené řádky"
#: order/serializers.py:132
msgid "Custom Status Key"
-msgstr ""
+msgstr "Vlastní stavový klíč"
#: order/serializers.py:133
msgid "Update order status to a custom value for this logical value"
-msgstr ""
+msgstr "Aktualizovat stav objednávky na vlastní hodnotu pro tuto logickou hodnotu"
#: order/serializers.py:199
msgid "Duplicate Order"
@@ -5730,15 +5742,15 @@ msgstr "Specifikujte možnosti pro duplikaci této objednávky"
#: order/serializers.py:221
msgid "Custom status key must be an integer"
-msgstr ""
+msgstr "Vlastní stavový klíč musí být celé číslo"
#: order/serializers.py:228
msgid "Invalid custom status key"
-msgstr ""
+msgstr "Neplatný vlastní stavový klíč"
#: order/serializers.py:231
msgid "Invalid custom status key for this order status"
-msgstr ""
+msgstr "Neplatný vlastní stavový klíč pro stav této objednávky"
#: order/serializers.py:305
msgid "Invalid order ID"
@@ -5784,11 +5796,11 @@ msgstr "Sloučit položky"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Sloučit položky se stejným dílem, místem určení a cílovým datem do jedné řádkové položky"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "Číslo zboží (SKU)"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Interní číslo dílu"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Zadat kód šarže pro příchozí skladové položky"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Datum expirace"
@@ -6056,123 +6068,131 @@ msgstr "Vratka po termínu vrácení"
msgid "Return order {ro} is now overdue"
msgstr "Vratka {ro} je nyní opožděná"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Označené"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Filtrovat podle kategorií s hvězdičkou"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Hloubka"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Filtrovat podle hloubky kategorie"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Nejvyšší úroveň"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Filtrovat podle nejvyšších kategorií"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Kaskáda"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Zahrnout podkategorie do filtrovaných výsledků"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Předek"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Filtrovat podle nadřazené kategorie"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Vyloučit podkategorie v zadané kategorii"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr "Maximální úroveň"
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr "Omezení hloubky stromu kategorie"
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Má výsledky"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "Je varianta"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "Je revizí"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "Má revize"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "Kusovník schválen"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "Kaskádové kategorie"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "Pokud je pravda, zahrne položky z podkategorií dané kategorie"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Filtrovat podle numerického ID kategorie nebo doslovného 'null'"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr "Sestavený díl je aktivní"
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr "Sestavený díl je sledovatelný"
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "Sestavený díl je testovatelný"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr "Sestavený díl je uzamčen"
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr "Kompotenta je aktivní"
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr "Komponenta je sledovatelná"
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "Díl komponenty je testovatelný"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr "Komponenta je část sestavy"
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr "Komponenta je virtuální"
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr "Má dostupné zásoby"
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Využití"
@@ -6213,7 +6233,7 @@ msgstr "Výchozí klíčová slova pro díly v této kategorii"
msgid "Icon"
msgstr "Ikona"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikona (volitelná)"
@@ -6349,7 +6369,7 @@ msgstr "Klíčová slova dílu pro zlepšení vyhledávání"
msgid "Part category"
msgstr "Kategorie dílu"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "Interní číslo dílu (IPN)"
@@ -6358,7 +6378,7 @@ msgstr "Interní číslo dílu (IPN)"
msgid "Part revision or version number"
msgstr "Číslo revize nebo verze dílu"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Revize"
@@ -6382,7 +6402,7 @@ msgstr "Výchozí expirace"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Expirační čas (ve dnech) pro zásoby tohoto dílu"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Minimální zásoby na skladě"
@@ -6390,7 +6410,7 @@ msgstr "Minimální zásoby na skladě"
msgid "Minimum allowed stock level"
msgstr "Minimální povolená úroveň zásob"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr "Maximální zásoby"
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Celkové dostupné zásoby v době inventury"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Datum"
@@ -6759,7 +6779,7 @@ msgstr "Poddílec"
msgid "Select part to be used in BOM"
msgstr "Vyberte díl které bude použit v kusovníku"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr "Množství"
@@ -6911,351 +6931,351 @@ msgstr "Nadřazená kategorie"
msgid "Parent part category"
msgstr "Nadřazená kategorie dílu"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Podkategorie"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Výsledky"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Počet výsledků zaznamenaných podle této šablony"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Nákupní měna této skladové položky"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "Soubor není obrázek"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Původní díl"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Vyberte původní díl, který má být duplikován"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Kopírovat obrázek"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Kopírovat obrázek z původního dílu"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Kopírovat kusovník"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Kopírovat kusovník z původního dílu"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Kopírovat data parametrů z původního dílu"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Kopírovat poznámky"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Kopírovat poznámky z původního dílu"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "Kopírovat testy"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "Kopírovat testovací šablony z původního dílu"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Počáteční skladové množství"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Zadejte počáteční skladové množství pro tuto část. Pokud je množství nulové, není přidáno žádné."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Počáteční skladové místo"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Zadejte počáteční skladové místo pro tento díl"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Vyberte dodavatele (nebo nechte prázdné pro přeskočení)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Vyberte výrobce (nebo nechte prázdné pro přeskočení)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Číslo dílu výrobce"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "Vybraná společnost není platný dodavatel"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "Vybraná společnost není platný výrobce"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Výrobce dílu se stejným MPN již existuje"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Dodavatelský díl s tímto SKU již existuje"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Název kategorie"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Budova"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "Množství tohoto dílu, které je v současné době ve výrobě"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Zbývající množství tohoto dílu, které má být postaveno"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Skladové položky"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Revize"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Celkem skladem"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Nezařazené zásoby"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Skladové varianty"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Duplikovat díl"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Kopírovat počáteční data z jiného dílu"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Počáteční zásoby"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Vytvořit díl s počátečním množstvím zásob"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Informace o dodavateli"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Přidat počáteční informace dodavatele pro tento díl"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Kopírovat parametry kategorie"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Kopírovat šablony parametrů z vybrané kategorie dilu"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Stávající obrázek"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Název souboru existujícího obrázku dílu"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Obrázek neexistuje"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Schválit celý kusovník"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Lze postavit"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "Vyžadováno pro výrobní objednávku"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "Přířazeno výrobním objednávkám"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "Vyžadováno pro prodejní objednávky"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "Přiřazeno prodejním objednávkám"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr "IPN dílu"
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr "Popis dílu"
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "Vyberte díl u kterého chce vytvořit informace inventury (i pro jeho varianty)"
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "Vyberte kategorii pro obsažení všech dílů v dané kategorii (a podkategoriích)"
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "Vyberte lokaci pro obsažení všech dílů se zásobami na dané lokaci (včetně pod-lokací)"
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr "Generovat vstupy inventury"
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr "Uložit vstupy inventury pro vybrané díly"
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr "Generovat report"
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr "Generovat report inventury pro vybrané díly"
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Minimální cena"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Přespat vypočítanou hodnotu pro minimální cenu"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Měna minimální ceny"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Maximální cena"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Přespat vypočítanou hodnotu pro maximální cenu"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Měna maximální ceny"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Aktualizovat"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Aktualizovat cenu pro díl"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Nelze převést z poskytnutých měn na {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Minimální cena musí být vyšší než maximální cena"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Maximální cena nesmí být nížší než minimální cena"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr "Množství vyžadováno pro tuto položku (může zahrnout jednotky)"
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "Vybrat nadřazenou sestavu"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "Vyberte komponentu dílu"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr "Neplatný formát množství"
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Vyberte díl pro kopírování kusovníku z"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Odstranit existující data"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Odstranit existující položky kusovníku před kopírováním"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Zahrnout zděděné"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Zahrnout položky kusovníku které jsou zdědené z šablonových dílů"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Přeskočit neplatné řádky"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Povolte tuto možnost pro přeskočení neplatných řádků"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Kopírovat náhradní díly"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopírovat náhradní díly při duplikaci položek kusovníku"
@@ -7326,91 +7346,91 @@ msgstr "Činnost nebyla specifikována"
msgid "No matching action found"
msgstr "Nebyla nalezena odpovídající činnost"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Pro data čárového kódu nebyla nalezena shoda"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Pro data čárového kódu byla nalezena shoda"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "Model není podporován"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "Instance modelu nebyla nalezena"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Čárový kód odpovídá existující položce"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Žádné odpovídající data nebyla nalezena"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Žádné odpovídající díly dodavatelů nebyly nalezeny"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Vícero odpovídajících dílů dodavatelů bylo nalezeno"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "Žádný odpovídající plugin pro čárové kódy nebyl nalezen"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Odpovídající díl dodavatele"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Položka již byla obdržena"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr "Objednávka nenašela\\rŽádnou shodu dílu dodavatele"
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr "Díl dodavatele nenašel\\rŽádnou shodu objednávky"
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "Žádný plugin neodpovídá čárový kód dodavatele"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Vícero odpovídajících řádkových položek bylo nalezeno"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Žádná odpovídající řádková položka nebyla nalezena"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Žádná prodejní objednávka nebyla poskytnuta"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Čárový kód neodpovídá žádné existující skladové položce"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Skladová položka se neshoduje s řádkovou položkou"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Nedostatečný počet zásob"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Skladová položka byla přidělena prodejní objednávce"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Nedostatek informací"
@@ -7992,7 +8012,7 @@ msgstr "Rámeček"
msgid "Print a border around each label"
msgstr "Vytisknout okraj kolem každého štítku"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Na šířku"
@@ -8072,77 +8092,77 @@ msgstr "Poskytuje podporu pro skenování TME čárových kódů"
msgid "The Supplier which acts as 'TME'"
msgstr "Dodavatel, který funguje jako 'TME'"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr "Pouze superuživatelské účty mohou spravovat pluginy"
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "Instalace pluginu je zakázana"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr "Není k dispozici žádný název balíčku nebo URL pro instalaci"
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr "Neplatné znaky v názvu balíčku nebo v URL"
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Plugin byl úspěšně nainstalován"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin nainstalovaný do {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "Plugin nebyl nalezen v registru"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "Plugin není plugin balíček"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "Název balíčku pluginu nebyl nalezen"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "Pouze pracovníci mohou spravovat pluginy"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "Odinstalace pluginu je zakázána"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Plugin nemůže být odinstalován, protože je aktuálně aktivní"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr "Plugin nemůže být odinstalován, protože je povinný"
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr "Plugin nemůže být odinstalován, protože to je vzorový plugin"
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr "Plugin nemůže být odinstalován, protože to je vestavěný plugin"
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "Plugin není nainstalován"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "Inslalace pluginu nebyla nalezena"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "Plugin odinstalován úspěšně"
@@ -8194,21 +8214,21 @@ msgstr "Balíčkový plugin"
msgid "Plugin"
msgstr "Plugin"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Nebyl nalezen žádný autor"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Plugin '{p}' není kompatibilní s aktuální verzí InvenTree {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Plugin vyžaduje alespoň verzi {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Plugin vyžaduje nanejvýš verzi {v}"
@@ -8481,136 +8501,136 @@ msgstr "Legal"
msgid "Letter"
msgstr "Letter"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "Šablona s tímto názvem již existuje"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Název šablony"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Popis šablony"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "Číslo revize (automatické navýšení)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Připojit k modelu při tisku"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Uložit výstup reportu jako přílohu v instanci propojeného modelu při tisku"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Šablona pro názvy souborů"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "Šablona pro generování názvů souborů"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "Šablona je povolena"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "Cílový typ modelu pro šablonu"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtry"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "Filtry dotazů šablon (čárkou oddělený seznam klíčových=dvojic hodnot)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Vzorový soubor"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Velikost stránky pro PDF reporty"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Vykreslit report v orientaci na šířku"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "Sloučit"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr "Vykreslit jeden report proti vybraným položkám"
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "Report generován ze šablony {self.name}"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr "Chyba syntaxe šablony"
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr "Chyba při vykreslování reportu"
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "Chyba při generování reportu"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr "Chyba při slučování výstupů reportu"
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Šířka [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Šířka štítku zadaná v mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Výška [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Výška štítku uvedená v mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "Chyba při tisku štítků"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Úryvek"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Nahlásit soubor úryvku"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Popis souboru úryvku"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Aktivum"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Nahlásit soubor aktiva"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Popis souboru aktiva"
@@ -8766,200 +8786,200 @@ msgstr "Žádný výsledek"
msgid "Transferred"
msgstr "Převedeno"
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr "Neplatná cesta k media souboru"
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr "Neplatná cesta ke statickému souboru"
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr "Soubor aktiva nebyl nalezen"
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Soubor obrázku nebyl nalezen"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr "Nebyl zadán žádný obrázek"
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "part_image tag vyžaduje instanci dílu"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "company_image tag vyžaduje intanci společnosti"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "Filtrovat dle hloubky lokace"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "Filtrovat dle nejvyšší lokace"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "Zahrnout pod-lokace ve filtrovaných výsledcích"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Nadřazená místo"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Filtrovat podle nadřazené lokace"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Název dílu (citlivost písmen na malá a velká písmena)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "Název dílu obsahuje (citlivost písmen na malá a velká písmena)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Název dílu (regex)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "IPN dílu (citlivost písmen na malá a velká písmena)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "IPN dílu obsahuje (citlivost písmen na malá a velká písmena)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "IPN dílu (regex)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Minimální zásoby"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Maximální zásoby"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Kód stavu"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Externí umístění"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "Spotřebováno výrobním příkazem"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "Nainstalováno v jiné skladové položce"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Strom dílů"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Aktualizováno před"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Aktualizováno po"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Inventura před"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Inventura po"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr "Má datum inventury"
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Datum expirace ped"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Datum expirace po"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Zastaralé"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr "Zadejte PK skladové položky, abyste vyloučili danou položku a všechny její potomky"
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr "Umístění kaskády"
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr "Pokud je pravda, uveďte předměty v podružených místech dané lokace"
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr "Filtrovat podle numberické ID lokace nebo doslovného 'null'"
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Množství je povinné"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Platný díl musí být dodán"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "Daný dodavatelský díl neexistuje"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "Dodavatelský díl na nastavenou velikost balení, ale znak use_pack_size není nastaven"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Sériové čísla nemohou být zadána pro díl bez sledovanosti"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr "Zahrnout nainstalované"
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr "Pokud je pravda, zahrne výslekdy testů pro předměty nainstalované pod danou skladovou položku"
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr "Filtrovat podle číselného ID položky skladu"
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr "Skladová položka s ID {id} neexistuje"
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr "Zahrnout varianty"
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr "Datum po"
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr "Datum před"
@@ -8995,7 +9015,7 @@ msgstr "Vybrat vlastníka"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Skladové položky nelze umístit přímo do strukturálních skladových umístění, ale lze je umístit do podřízených skladových umístění."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Externí"
@@ -9101,7 +9121,7 @@ msgstr "Vyberte odpovídající díl dodavatele pro tuto skladovou položku"
msgid "Where is this stock item located?"
msgstr "Kde se tato skladová položka nachází?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Balení, ve kterém je tato skladová položka uložena"
@@ -9117,7 +9137,7 @@ msgstr "Je tato položka nainstalována v jiné položce?"
msgid "Serial number for this item"
msgstr "Sériové číslo pro tuto položku"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Kód šarže pro tuto skladovou položku"
@@ -9206,7 +9226,7 @@ msgstr "Množství neodpovídá sériovým číslům"
msgid "Cannot assign stock to structural location"
msgstr "Nelze přiřadit zásoby ke strukturálnímu umístění"
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "Testovací šablona neexistuje"
@@ -9226,7 +9246,7 @@ msgstr "Skladová položka obsahuje jiné položky"
msgid "Stock item has been assigned to a customer"
msgstr "Skladová položka byla přidělena zákazníkovi"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Skladová položka je ve výrobě"
@@ -9234,7 +9254,7 @@ msgstr "Skladová položka je ve výrobě"
msgid "Serialized stock cannot be merged"
msgstr "Serializované zásoby nelze sloučit"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Duplicitní skladové položky"
@@ -9250,71 +9270,71 @@ msgstr "Skladové položky musí odkazovat na stejný díl dodavatele"
msgid "Stock status codes must match"
msgstr "Kódy stavu zásob se musí shodovat"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Zásobová položka nemůže být přesunuta, protože není skladem"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "Sledování skladových položek"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Poznámky k záznamu"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "Výsledek testu skladové položky"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Pro tuto zkoušku musí být uvedena hodnota"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Pro tento test musí být nahrána příloha"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "Neplatná hodnota pro tento test"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Výsledek testu"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Výstupní hodnota testu"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Příloha výsledků testu"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Poznámky testu"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "Testovací stanice"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "Identifikátor testovací stanice kde byl test proveden"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Začátek"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "Čas začátku testu"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Ukončeno"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "Čas dokončení testu"
@@ -9398,7 +9418,7 @@ msgstr "Zadejte sériová čísla pro nové položky"
msgid "Supplier Part Number"
msgstr "Číslo dílu dodavatele"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Expirováno"
@@ -9428,8 +9448,8 @@ msgstr "Nebyla poskytnuta žádná skladová položka"
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Množství nesmí překročit dostupné skladové množství ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Cílové skladové umístění"
@@ -9501,127 +9521,131 @@ msgstr "Vybrat skladové položky pro změnu stavu"
msgid "No stock items selected"
msgstr "Nejsou vybrány žádné skladové položky"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Podumístění"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr "Odstranit skladové položky"
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr "Odstranit všechny skladové položky obsažené v této lokaci"
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr "Odstranit podkategorie"
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr "Odstranit všechny podkategorie obsažené v této lokaci"
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "Nadřazené skladové umístění"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Díl musí být prodejný"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "Položka je přidělena prodejní objednávce"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr "Položka je přiřazená v převodní objednávce"
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Položka je přidělena výrobnímu příkazu"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Zákazník, kterému mají být přiděleny skladové položky"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "Vybraná společnost není zákazník"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Poznámky ke skladové položce"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Musí být poskytnut seznam skladových položek"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Poznámky ke sloučení skladových položek"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Povolit neodpovídající dodavatele"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Povolit sloučení skladových položek s různými díly dodavatele"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Povolit neodpovídající stav"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Povolit sloučení skladových položek s různými stavovými kódy"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Musí být poskytnuty alespoň dvě skladové položky"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Beze změny"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Hodnota primárního klíče skladové položky"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "Skladová položka není skladem"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr "Skladová položka je již na skladě"
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr "Množství nesmí být záporné"
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Poznámky ke skladovací transakci"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr "Nastavit umístění zásob pro počítané položky (volitelné)"
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr "Sloučit do existující zásoby"
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Poznámky ke skladovací transakci"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr "Nastavit umístění zásob pro počítané položky (volitelné)"
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr "Sloučit vrácené položky do existujích položek, pokud je to možné"
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "Další sériové číslo"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "Předchozí sériové číslo"
@@ -9919,7 +9943,7 @@ msgstr "Oprávnění"
msgid "Important dates"
msgstr "Důležité termíny"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Token byl zrušen"
@@ -9927,163 +9951,163 @@ msgstr "Token byl zrušen"
msgid "Token has expired"
msgstr "Token vypršel"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API token"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API tokeny"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Název tokenu"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Uživatelský název tokenu"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Datum vypršení tokenu"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Naposledy aktivní"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Čas posledního použití tokenu"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Zrušeno"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Nastavení oprávnění"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Zobrazit"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Oprávnění k zobrazení položek"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Přidat"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Oprávnění přidat položky"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Změnit"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Oprávnění k úpravě položek"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Odstranit"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Oprávnění k odstranění položek"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "Bot"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "Interní"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Host"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Jazyk"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "Preferovaný jazyk uživatele"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "Motiv"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "Nastavení webového rozhraní jako JSON - neupravujte ručně!"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "Widgety"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "Nastavení widgetů hlavního panelu jako JSON - neupravujte ručně!"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Zobrazované jméno"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "Zvolené zobrazované jméno pro uživatele"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "Pozice"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "Název nebo funkce hlavního zaměstnání"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "Zpráva statusu uživatele"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "Informace o umístění uživatele"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "Uživatel aktivně používá systém"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "Upřednostňované kontaktní údaje pro uživatele"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "Typ uživatele"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "Jaký typ uživatele to je?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "Organizace"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "Primární organizace / přidružení uživatelů"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "Primární skupina"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "Primární skupina uživatele"
diff --git a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po
index 4020fbff05..3a95a591b3 100644
--- a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Language: da_DK\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API endpoint ikke fundet"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Elementer skal angives som en liste"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Alle filtre må kun bruges med sand"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Ingen data angivet"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Dette felt skal være unikt."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Bruger har ikke tilladelse til at se denne model"
@@ -65,11 +65,11 @@ msgstr "Bekræftelse af e-mailadresse"
msgid "You must type the same email each time."
msgstr "Du skal indtaste den samme e-mail hver gang."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Den indtastede email adresse er ikke gyldig."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Det angivne e-mail domæne er ikke godkendt."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Kunne ikke konvertere {original} til {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Ugyldigt antal angivet"
@@ -105,22 +105,22 @@ msgstr "Angiv dato"
msgid "Invalid decimal value"
msgstr "Ugyldig decimalværdi"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Bemærkninger"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Værdi '{name}' vises ikke i mønsterformat"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Den angivne værdi matcher ikke det påkrævede mønster: "
@@ -164,51 +164,51 @@ msgstr "Fjern HTML-tags fra denne værdi"
msgid "Data contains prohibited markdown content"
msgstr "Data indeholder forbudt markdown indhold"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Forbindelsesfejl"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Serveren svarede med ugyldig statuskode"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Der opstod en fejl"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Serveren svarede med ugyldig Content-Length værdi"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Billedstørrelsen er for stor"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Billeddownload overskred maksimumstørrelsen"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Fjernserver returnerede tomt svar"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Angivet URL er ikke en gyldig billedfil"
@@ -220,117 +220,121 @@ msgstr "Log ind på appen"
msgid "Email"
msgstr "E-mail"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr ""
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadata skal være et python dict objekt"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON metadata felt, til brug af eksterne plugins"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Forkert formateret mønster"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Ukendt formatnøgle angivet"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Mangler nødvendig formatnøgle"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Referencefelt må ikke være tomt"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Reference skal matche det påkrævede mønster"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Referencenummer er for stort"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Ugyldigt valg"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Navn"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Beskrivelse"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Beskrivelse (valgfri)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Sti"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Markdown noter (valgfri)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Stregkode Data"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Tredjeparts stregkode data"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Stregkode Hash"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Unik hash af stregkode data"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Eksisterende stregkode fundet"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Serverfejl"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "En fejl blev logget af serveren."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Skal være et gyldigt tal"
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Vælg valuta fra tilgængelige muligheder"
@@ -521,11 +525,11 @@ msgstr "Kinesisk (forenklet)"
msgid "Chinese (Traditional)"
msgstr "Kinesisk (traditionelt)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Opdatering tilgængelig"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "En opdatering til InvenTree er tilgængelig"
@@ -537,7 +541,7 @@ msgstr "Ugyldig fysisk enhed"
msgid "Not a valid currency code"
msgstr "Ikke en gyldig valutakode"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Ordre status"
@@ -546,23 +550,23 @@ msgstr "Ordre status"
msgid "Parent Build"
msgstr "Overordnet produktion"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "Del"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Kategori"
@@ -593,7 +597,7 @@ msgstr "Kategori"
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Tildelt til Mig"
@@ -601,11 +605,11 @@ msgstr "Tildelt til Mig"
msgid "Assigned To"
msgstr "Tildelt Til"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Oprettet før"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Oprettet efter"
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Produktion skal anulleres, før den kan slettes"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Forbrugsvare"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Valgfri"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Sporet"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Ordre Udestående"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Allokeret"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Tilgængelig"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Produktionsordre"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Lokation"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Produktionsordre reference"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Salgsordrereference"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Kilde Lokation"
@@ -821,7 +825,7 @@ msgstr "Ekstern Byg"
msgid "This build order is fulfilled externally"
msgstr "Denne byggeordre er gennemført eksternt"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Destinations Placering"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Produktions statuskode"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Batch Kode"
@@ -883,8 +887,8 @@ msgstr "Projekteret afslutningsdato"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Dato for afslutning"
@@ -900,7 +904,7 @@ msgstr "Udstedt af"
msgid "User who issued this build order"
msgstr "Bruger som udstedte denne byggeordre"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Prioritet af denne byggeordre"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Projektkode"
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Lagervarer"
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Del Navn"
@@ -1139,7 +1143,7 @@ msgstr "Automatisk alloker serienumre"
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Følgende serienumre findes allerede eller er ugyldige"
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Varen skal være på lager"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr "Byg"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Leverandør Del"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Stykliste Del"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "I Produktion"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Ekstern Lager"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Tilgængelig Lager"
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr "Ingen plugin"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "Nøglestrengen skal være unik"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Bruger"
@@ -1654,8 +1658,8 @@ msgstr "Bruger"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Pris"
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktiv"
@@ -1686,7 +1690,7 @@ msgstr "Aktiv"
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token"
@@ -1756,7 +1760,7 @@ msgstr "Titel"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Vedhæftning"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Værdi"
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "E-mail Tråde"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Nøgle"
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr "Filnavn"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Afsendt"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po
index 87d9d70f2a..48f0fd79f4 100644
--- a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API-Endpunkt nicht gefunden"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Elemente müssen als Liste angegeben werden"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Ungültige Artikelliste angegeben"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Alle Filter dürfen nur mit true verwendet werden"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Keine Gegenstände erfüllen die vorgegebenen Kriterien"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Keine Daten verfügbar"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Dieses Feld muss eindeutig sein."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Benutzer hat keine Berechtigung, dieses Modell anzuzeigen"
@@ -65,11 +65,11 @@ msgstr "Bestätigung der E-Mail Adresse"
msgid "You must type the same email each time."
msgstr "E-Mail Adressen müssen übereinstimmen."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Die angegebene primäre E-Mail-Adresse ist ungültig."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Die angegebene E-Mail-Domain ist nicht freigegeben."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Konnte {original} nicht in {unit} umwandeln"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
@@ -105,22 +105,22 @@ msgstr "Datum eingeben"
msgid "Invalid decimal value"
msgstr "Ungültiger Dezimalwert"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Notizen"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Wert '{name}' hält das Musterformat nicht ein"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Angegebener Wert entspricht nicht dem benötigten Muster: "
@@ -164,51 +164,51 @@ msgstr "Entferne HTML-Tags von diesem Wert"
msgid "Data contains prohibited markdown content"
msgstr "Daten enthalten verbotene Markdown-Inhalte"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Verbindungsfehler"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Server antwortete mit ungültigem Statuscode"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Ausnahme aufgetreten"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Server antwortete mit ungültigem Wert für die Inhaltslänge"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Bild ist zu groß"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Bilddownload überschreitet maximale Größe"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Remote-Server gab leere Antwort zurück"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Angegebene URL ist kein gültiges Bild"
@@ -220,117 +220,121 @@ msgstr "Bei der App anmelden"
msgid "Email"
msgstr "Email"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Sie müssen die Zwei-Faktor-Authentifizierung aktivieren, bevor Sie etwas tun können."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Fehler beim Ausführen der Plugin Validierung"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadaten müssen ein Python-Dict Objekt sein"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Plugin Metadaten"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON-Metadatenfeld, für die Verwendung durch externe Plugins"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Falsch formatiertes Muster"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Unbekannter Formatschlüssel angegeben"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Erforderlicher Formatschlüssel fehlt"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Referenz-Feld darf nicht leer sein"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Referenz muss erforderlichem Muster entsprechen"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Referenznummer ist zu groß"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Name"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Beschreibung"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Beschreibung (optional)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Pfad"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Markdown Notizen (optional)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Barcode-Daten"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Drittanbieter-Barcode-Daten"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Barcode-Hash"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Eindeutiger Hash der Barcode-Daten"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Bestehender Barcode gefunden"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Serverfehler"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Ein Fehler wurde vom Server protokolliert."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Muss eine gültige Nummer sein"
msgid "Currency"
msgstr "Währung"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Währung aus verfügbaren Optionen auswählen"
@@ -521,11 +525,11 @@ msgstr "Chinesisch (Vereinfacht)"
msgid "Chinese (Traditional)"
msgstr "Chinesisch (Traditionell)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Update verfügbar"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Ein Update für InvenTree ist verfügbar"
@@ -537,7 +541,7 @@ msgstr "Ungültige physikalische Einheit"
msgid "Not a valid currency code"
msgstr "Kein gültiger Währungscode"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Bestellstatus"
@@ -546,23 +550,23 @@ msgstr "Bestellstatus"
msgid "Parent Build"
msgstr "Eltern-Bauauftrag"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Varianten einschließen"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Varianten einschließen"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Varianten einschließen"
msgid "Part"
msgstr "Teil"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Kategorie"
@@ -593,7 +597,7 @@ msgstr "Kategorie"
msgid "Ancestor Build"
msgstr "Vorgänger-Build"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Mir zugewiesen"
@@ -601,11 +605,11 @@ msgstr "Mir zugewiesen"
msgid "Assigned To"
msgstr "Zugewiesen zu"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Erstellt vor"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Erstellt nach"
@@ -641,99 +645,99 @@ msgstr "Abgeschlossen vor"
msgid "Completed after"
msgstr "Abgeschlossen nach"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Baum ausschließen"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Verbrauchsmaterial"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Optional"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Baugruppe"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Nachverfolgt"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Prüfbar"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Offene Bestellung"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Zugeordnet"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Verbraucht"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Verfügbar"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "Bestellt"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Bauauftrag"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Lagerort"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Bauprodukt"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr "Zieldatum muss nach dem Startdatum liegen"
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Auftrag Referenz"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Quell-Lagerort"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Ziel-Lagerort"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Bau-Statuscode"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Losnummer"
@@ -883,8 +887,8 @@ msgstr "geplantes Fertigstellungsdatum"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
@@ -900,7 +904,7 @@ msgstr "Aufgegeben von"
msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Priorität dieses Bauauftrags"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Projektcode"
@@ -962,9 +966,9 @@ msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
@@ -999,7 +1003,7 @@ msgstr "Objekt bauen"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
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:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
@@ -1057,8 +1061,8 @@ msgstr "BestandObjekt ist zu oft zugewiesen"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Lagerartikel"
@@ -1082,7 +1086,7 @@ msgstr "Ziel-Lagerartikel"
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Name des Teils"
@@ -1139,7 +1143,7 @@ msgstr "Seriennummern automatisch zuweisen"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Benötigte Lagerartikel automatisch mit passenden Seriennummern zuweisen"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Die folgenden Seriennummern existieren bereits oder sind ungültig"
@@ -1272,7 +1276,7 @@ msgstr "Bauauftragspositionsartikel"
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:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Teil muss auf Lager sein"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr "Zusammenbau"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Zuliefererteil"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Varianten zulassen"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Stücklisten-Position"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "In Produktion"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "Geplant zum Erstellen"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Externes Lager"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Verfügbarer Bestand"
@@ -1527,31 +1531,31 @@ msgstr "Überfälliger Bauauftrag"
msgid "Build order {bo} is now overdue"
msgstr "Bauauftrag {bo} ist jetzt überfällig"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "Link"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "Datei"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "Benutzer hat keine Berechtigung zum Löschen der Anhänge"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "Benutzer hat keine Berechtigung zum Löschen des Anhangs"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr "Kein Plugin"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "Schlüsseltext muss eindeutig sein"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Benutzer"
@@ -1654,8 +1658,8 @@ msgstr "Benutzer"
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Preis"
@@ -1677,8 +1681,8 @@ msgstr "Name für diesen Webhook"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktiv"
@@ -1686,7 +1690,7 @@ msgstr "Aktiv"
msgid "Is this webhook active"
msgstr "Ist dieser Webhook aktiv"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token"
@@ -1756,7 +1760,7 @@ msgstr "Titel"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definition"
msgid "Unit definition"
msgstr "Einheitsdefinition"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Anhang"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Wert"
@@ -2172,7 +2176,7 @@ msgstr "Gültige Optionen für diesen Parameter (durch Kommas getrennt)"
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Aktiviert"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Vorlage"
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Kontext"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Ergebnis"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Schlüssel"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} storniert"
msgid "A order that is assigned to you was canceled"
msgstr "Eine Bestellung, die Ihnen zugewiesen war, wurde storniert"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Artikel erhalten"
@@ -2524,7 +2528,7 @@ msgstr "Dateiname"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Modelltyp"
@@ -2669,8 +2673,8 @@ msgstr "Wie oft Wechselkurse aktualisiert werden sollen (auf Null zum Deaktivier
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "Tage"
@@ -2914,8 +2918,8 @@ msgstr "Teile sind standardmäßig Vorlagen"
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Komponente"
@@ -2931,7 +2935,7 @@ msgstr "Kaufbar"
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Verkäuflich"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Fehler, die beim Erstellen von Berichten auftreten, protokollieren"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Seitengröße"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Lagerartikel, die nicht auf Lager sind, können zwischen Lagerstandorten übertragen werden"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Bauauftragsreferenz-Muster"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bauaufträge"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Verantwortlicher Besitzer erforderlich"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Jeder Bestellung muss ein verantwortlicher Besitzer zugewiesen werden"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Blockieren bis Test bestanden"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Verhindert die Fertigstellung bis alle erforderlichen Tests bestanden sind"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Rücksendungen aktivieren"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Aktivieren der Rücksendung-Funktion in der Benutzeroberfläche"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Referenz Muster für Rücksendungen"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Rücksendungen"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Abgeschlossene Rücksendungen bearbeiten"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Bearbeitung von Rücksendungen nach Abschluss erlauben"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Auftragsreferenz-Muster"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Aufträge"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Auftrag Standardsendung"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Erstelle eine Standardsendung für Aufträge"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Abgeschlossene Aufträge bearbeiten"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Bearbeitung von Aufträgen nach Versand oder Abschluss erlauben"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Versendete Bestellungen als abgeschlossen markieren"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Als versendet markierte Aufträge werden automatisch abgeschlossen und überspringen den Status \"Versandt\""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Bestellungsreferenz-Muster"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Benötigtes Muster für die Generierung des Referenzfeldes für Bestellungen"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Abgeschlossene Einkaufsaufträge bearbeiten"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Bearbeitung von Einkaufsaufträgen nach Versand oder Abschluss erlauben"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Bestellungen automatisch abschließen"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Bestellung automatisch als abgeschlossen markieren, wenn der Empfang aller Artikel bestätigt wurde"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Passwort vergessen aktivieren"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Registrierung erlauben"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "SSO aktivieren"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "SSO auf den Anmeldeseiten aktivieren"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "SSO Selbstregistrierung aktivieren"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Selbstregistrierung über SSO für Benutzer auf den Anmeldeseiten aktivieren"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "SSO Gruppensynchronisation aktivieren"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "SSO Gruppenschlüssel"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Email-Adresse erforderlich"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "SSO-Benutzer automatisch ausfüllen"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "E-Mail zweimal"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Passwort zweimal"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Erlaubte Domains"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Anmeldung auf bestimmte Domänen beschränken (kommagetrennt, beginnend mit @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Gruppe bei Registrierung"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "MFA erzwingen"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Benutzer müssen Multifaktor-Authentifizierung verwenden."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Plugins beim Start prüfen"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Beim Start überprüfen, ob alle Plugins installiert sind - Für Container aktivieren"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Nach Plugin-Aktualisierungen suchen"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Periodische Überprüfungen auf Updates für installierte Plugins aktivieren"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "URL-Integration aktivieren"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Plugins zum Hinzufügen von URLs aktivieren"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Navigations-Integration aktivieren"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Plugins zur Integration in die Navigation aktivieren"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "App-Integration aktivieren"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Plugins zum Hinzufügen von Apps aktivieren"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Terminplan-Integration aktivieren"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Geplante Aufgaben aktivieren"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Ereignis-Integration aktivieren"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Externe Standorte ausschließen"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Automatische Inventur-Periode"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Vollständige Namen von Benutzern anzeigen"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Vollständigen Namen von Benutzern anstatt Benutzername anzeigen"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Teststation-Daten aktivieren"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Teststation-Datenerfassung für Testergebnisse aktivieren"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Eine leere Domain ist nicht erlaubt."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Ungültiger Domainname: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "Lieferant ist aktiv"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Hersteller"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Firma"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Kontakt-Email"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Kontakt"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Adresse"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Link zu Adressinformationen (extern)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Herstellerteil"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Hersteller auswählen"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "MPN"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Zulieferer"
@@ -4448,7 +4460,7 @@ msgstr "Zulieferer"
msgid "Select supplier"
msgstr "Zulieferer auswählen"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Verpackungen"
@@ -4533,7 +4545,7 @@ msgstr "Standard-Währung für diesen Zulieferer"
msgid "Company Name"
msgstr "Firmenname"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Auf Lager"
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr "Fehler"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Gültig"
@@ -4838,7 +4850,7 @@ msgstr "Anzahl der zu druckenden Kopien für jedes Label"
msgid "Connected"
msgstr "Verbunden"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Unbekannt"
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Gruppe"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Bestellreferenz"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Ausstehend"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Erstellt von"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Hat Preise"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Bestellung"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Bestellung abgeschlossen"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Internes Teil"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Bestellung ausstehend"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Fertig"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Bestellung"
msgid "Sales Order"
msgstr "Auftrag"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Rücksendeauftrag"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr "Auftragsbeschreibung (optional)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Projektcode für diesen Auftrag auswählen"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Link auf externe Seite"
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Zieldatum"
@@ -5184,487 +5196,487 @@ msgstr "Ansprechpartner für diesen Auftrag"
msgid "Company address for this order"
msgstr "Firmenadresse für diesen Auftrag"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Bestell-Referenz"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Status"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Bestellungs-Status"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Firma bei der die Teile bestellt werden"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Zulieferer-Referenz"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Zulieferer Bestellreferenz"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "Empfangen von"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Ziel-Lager"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Position stimmt nicht mit Kaufauftrag überein"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Anzahl muss eine positive Zahl sein"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Kunde"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Bestellreferenz"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Versanddatum"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "Versand von"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "Bestellung ist bereits abgeschlossen"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "Bestellung ist bereits storniert"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Nur ein offener Auftrag kann als abgeschlossen markiert werden"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Auftrag kann nicht abgeschlossen werden, da unvollständige Sendungen vorhanden sind"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Auftrag kann nicht abgeschlossen werden, da es unvollständige Positionen gibt"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Zieldatum für diesen Einzelposten (leer lassen, um das Zieldatum des Auftrags zu verwenden)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Positionsbeschreibung (optional)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Zusätzlicher Kontext für diese Zeile"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Stückpreis"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "Lieferantenteil muss mit Lieferant übereinstimmen"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Zuliefererteil"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Empfangen"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Preis"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Nur verkaufbare Teile können einem Auftrag zugewiesen werden"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Verkaufspreis"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Stückverkaufspreis"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Versendet"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Versendete Menge"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Versanddatum"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Lieferdatum"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Versanddatum"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Kontrolliert von"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Benutzer, der diese Sendung kontrolliert hat"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Sendung"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Sendungsnummer"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Sendungsverfolgungsnummer"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Informationen zur Sendungsverfolgung"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Rechnungsnummer"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Referenznummer für zugehörige Rechnung"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Sendung wurde bereits versandt"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Sendung hat keine zugewiesene Lagerartikel"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "Lagerartikel wurde nicht zugewiesen"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Auftrag gehört nicht zu Sendung"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Sendung gehört nicht zu Auftrag"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Position"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Sendungsnummer-Referenz"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Position"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Lagerartikel für Zuordnung auswählen"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Rücksendungsreferenz"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Firma von der die Artikel zurückgeschickt werden"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Status der Rücksendung"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Artikel zur Rücksendung auswählen"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Empfangsdatum"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Ergebnis"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Ergebnis für dieses Zeilenelement"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Kosten für die Rückgabe oder Reparatur dieses Objektes"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Parameter kopieren"
@@ -5784,11 +5796,11 @@ msgstr "Elemente zusammenfügen"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Zusammenführen von Elementen mit dem gleichen Teil, Ziel- und Zieldatum zu einem Zeilenelement"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "Lieferanten-Teilenummer"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Losnummer für eingehende Lagerartikel"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Ablaufdatum"
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Markiert"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Nach markierten Kategorien filtern"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Ebenen"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Filter nach Kategorietiefe"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Oberste Ebene"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Mehrstufig"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Unterkategorien in gefilterte Ergebnisse einbeziehen"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Übergeordnetes"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Nach übergeordneter Kategorie filtern"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Unterkategorien in der angegebenen Kategorie ausschließen"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Ergebnisse"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Verwendet"
@@ -6213,7 +6233,7 @@ msgstr "Standard-Stichworte für Teile dieser Kategorie"
msgid "Icon"
msgstr "Symbol"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Symbol (optional)"
@@ -6349,7 +6369,7 @@ msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
@@ -6358,7 +6378,7 @@ msgstr "IPN (Interne Produktnummer)"
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Version"
@@ -6382,7 +6402,7 @@ msgstr "Standard Ablaufzeit"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Minimaler Bestand"
@@ -6390,7 +6410,7 @@ msgstr "Minimaler Bestand"
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Bestand"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Datum"
@@ -6759,7 +6779,7 @@ msgstr "Untergeordnetes Teil"
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr "Übergeordnete Kategorie"
msgid "Parent part category"
msgstr "Übergeordnete Teilkategorie"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Unter-Kategorien"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Ergebnisse"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Anzahl der Ergebnisse, die in dieser Vorlage aufgezeichnet wurden"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Kaufwährung dieses Lagerartikels"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Originalteil"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Originalteil zum Duplizieren auswählen"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Bild kopieren"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Bild vom Originalteil kopieren"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Stückliste kopieren"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Stückliste vom Originalteil kopieren"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Parameterdaten vom Originalteil kopieren"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Anmerkungen kopieren"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Notizen aus Originalteil kopieren"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Start-Bestandsmenge"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Initiale Lagermenge für dieses Teil. Wenn die Menge null ist, wird kein Lagerbestand hinzugefügt."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Initialer Lagerort"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Lagerstandort für dieses Teil angeben"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Lieferant auswählen (oder leer lassen, um zu überspringen)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Hersteller auswählen (oder leer lassen, um zu überspringen)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Hersteller-Teilenummer"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "Ausgewählte Firma ist kein gültiger Lieferant"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "Ausgewählte Firma ist kein gültiger Hersteller"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Herstellerteil mit dieser MPN existiert bereits"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Lieferantenteil mit dieser SKU existiert bereits"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Kategoriename"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Im Bau"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Lagerartikel"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Gesamtbestand"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Nicht zugewiesenes Lager"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Alternatives Lager"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Teil duplizieren"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Initiale Daten von anderem Teil kopieren"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Initialer Lagerbestand"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Erstelle Teil mit Ausgangsbestand"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Lieferanteninformationen"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Lieferanteninformationen zu diesem Teil hinzufügen"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Kategorieparameter kopieren"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Parametervorlagen aus der ausgewählten Teilkategorie kopieren"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Vorhandenes Bild"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Dateiname eines vorhandenen Teilbildes"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Bilddatei existiert nicht"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Gesamte Stückliste validieren"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Herstellbar"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Niedrigster Preis"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Berechneten Wert für Mindestpreis überschreiben"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Mindestpreis Währung"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Höchster Preis"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Berechneten Wert für maximalen Preis überschreiben"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Maximalpreis Währung"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Aktualisieren"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Preis für dieses Teil aktualisieren"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Konnte nicht von den angegebenen Währungen in {default_currency} umrechnen"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Mindestpreis darf nicht größer als der Maximalpreis sein"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Der Maximalpreis darf nicht kleiner als der Mindestpreis sein"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Teil auswählen, von dem Stückliste kopiert wird"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Bestehende Daten entfernen"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Bestehende Stücklisten-Positionen vor dem Kopieren entfernen"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Vererbtes einschließen"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Stücklisten-Positionen einbeziehen, die von Vorlage-Teilen geerbt werden"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Ungültige Zeilen überspringen"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Aktiviere diese Option, um ungültige Zeilen zu überspringen"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Ersatzteile kopieren"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Ersatzteile beim Duplizieren von Stücklisten-Positionen kopieren"
@@ -7326,91 +7346,91 @@ msgstr "Keine Aktion angegeben"
msgid "No matching action found"
msgstr "Keine passende Aktion gefunden"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Keine Treffer für Barcode"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Treffer für Barcode gefunden"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Barcode entspricht einem bereits vorhandenen Artikel"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Keine passenden Teiledaten gefunden"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Keine passenden Zulieferteile gefunden"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Mehrere passende Zulieferteile gefunden"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Zulieferteil zugeordnet"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Artikel wurde bereits erhalten"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Mehrere passende Elemente gefunden"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Kein passendes Element gefunden"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Barcode stimmt nicht mit einem vorhandenen Lagerartikel überein"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Lagerartikel stimmt nicht mit dem Element überein"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Unzureichender Bestand verfügbar"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Lagerartikel der Bestellung zugeordnet"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Nicht genügend Informationen"
@@ -7992,7 +8012,7 @@ msgstr "Rand"
msgid "Print a border around each label"
msgstr "Einen Rahmen um jedes Label drucken"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Querformat"
@@ -8072,77 +8092,77 @@ msgstr "Unterstützt das Scannen von TME-Barcodes"
msgid "The Supplier which acts as 'TME'"
msgstr "Der Lieferant, der als 'TME' fungiert"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "Plugin-Installation ist deaktiviert"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Plugin wurde erfolgreich installiert"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin installiert in {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "Plugin wurde nicht in der Registry gefunden"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "Plugin ist kein gepacktes Plugin"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "Plugin-Paketname nicht gefunden"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "Nur Mitarbeiter können Plugins verwalten"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "Plugin-Deinstallation ist deaktiviert"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Plugin kann nicht deinstalliert werden, da es momentan aktiv ist"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "Plugin erfolgreich deinstallieren"
@@ -8194,21 +8214,21 @@ msgstr "Paket-Plugin"
msgid "Plugin"
msgstr "Plugin"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Kein Autor gefunden"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Plugin '{p}' ist nicht kompatibel mit der aktuellen InvenTree Version {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Plugin benötigt mindestens Version {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Plugin benötigt maximal Version {v}"
@@ -8481,136 +8501,136 @@ msgstr "US-Legal"
msgid "Letter"
msgstr "US-Letter"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Vorlagen Name"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Beschreibung der Vorlage"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Dateinamen-Muster"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filter"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Seitengröße für PDF-Berichte"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Bericht in Querformat anzeigen"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Breite [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Label-Breite in mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Höhe [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Label-Höhe in mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Schnipsel"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Berichts-Snippet"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Snippet-Beschreibung"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Ressource"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Berichts-Ressource"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Ressource-Beschreibung"
@@ -8766,200 +8786,200 @@ msgstr "Kein Ergebnis"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Bilddatei nicht gefunden"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "part_image tag benötigt eine Bauteilinstanz"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "company_image tag erfordert eine Firmeninstanz"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "Filtern nach Standorttiefe"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "Unterorte in gefilterte Ergebnisse einbeziehen"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Übergeordneter Ort"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Filtern nach übergeordnetem Ort"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Statuscode"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Externer Standort"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Teile-Baum"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Gültigkeitsdauer vor"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Gültigkeitsdauer nach"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "überfällig"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Menge ist erforderlich"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Gültiges Teil muss angegeben werden"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "Der angegebene Lieferantenartikel existiert nicht"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "Das Zulieferteil hat eine Packungsgröße definiert, aber das Kennzeichen use_pack_size ist nicht gesetzt"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Seriennummern können für nicht verfolgbare Teile nicht angegeben werden"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Besitzer auswählen"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Lagerartikel können nicht direkt an einen strukturellen Lagerort verlegt werden, können aber an einen untergeordneten Lagerort verlegt werden."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Extern"
@@ -9101,7 +9121,7 @@ msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen"
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Verpackung, in der dieser Lagerartikel gelagert ist"
@@ -9117,7 +9137,7 @@ msgstr "Ist dieses Teil in einem anderen verbaut?"
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Losnummer für diesen Lagerartikel"
@@ -9206,7 +9226,7 @@ msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "Testvorlage existiert nicht"
@@ -9226,7 +9246,7 @@ msgstr "Lagerartikel enthält andere Artikel"
msgid "Stock item has been assigned to a customer"
msgstr "Artikel wurde einem Kunden zugewiesen"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Lagerartikel wird aktuell produziert"
@@ -9234,7 +9254,7 @@ msgstr "Lagerartikel wird aktuell produziert"
msgid "Serialized stock cannot be merged"
msgstr "Nachverfolgbare Lagerartikel können nicht zusammengeführt werden"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Artikel duplizeren"
@@ -9250,71 +9270,71 @@ msgstr "Lagerartikel müssen auf dasselbe Lieferantenteil verweisen"
msgid "Stock status codes must match"
msgstr "Status-Codes müssen zusammenpassen"
-#: stock/models.py:2503
+#: stock/models.py:2558
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:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Test Notizen"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "Teststation"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "Der Bezeichner der Teststation, in der der Test durchgeführt wurde"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Gestartet"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "Der Zeitstempel des Teststarts"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Fertiggestellt"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "Der Zeitstempel der Test-Beendigung"
@@ -9398,7 +9418,7 @@ msgstr "Seriennummern für neue Teile eingeben"
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "abgelaufen"
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Ziel-Bestand"
@@ -9501,127 +9521,131 @@ msgstr "Lagerartikel auswählen, um den Status zu ändern"
msgid "No stock items selected"
msgstr "Keine Lagerartikel ausgewählt"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Unter-Lagerorte"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "Übergeordneter Lagerort"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Teil muss verkaufbar sein"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "Artikel ist einem Kundenauftrag zugeordnet"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Artikel ist einem Fertigungsauftrag zugeordnet"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Kunde zum Zuweisen von Lagerartikel"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "Ausgewählte Firma ist kein Kunde"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Notizen zur Lagerzuordnung"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Eine Liste der Lagerbestände muss angegeben werden"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Notizen zur Lagerartikelzusammenführung"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Unterschiedliche Lieferanten erlauben"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Lieferanten erlauben"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Unterschiedliche Status erlauben"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Zusammenführen von Lagerartikeln mit unterschiedlichen Status-Codes erlauben"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Mindestens zwei Lagerartikel müssen angegeben werden"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Keine Änderung"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Primärschlüssel Lagerelement"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Bestandsbewegungsnotizen"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Bestandsbewegungsnotizen"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "Nächste Seriennummer"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "Vorherige Seriennummer"
@@ -9919,7 +9943,7 @@ msgstr "Berechtigungen"
msgid "Important dates"
msgstr "wichtige Daten"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Token wurde widerrufen"
@@ -9927,163 +9951,163 @@ msgstr "Token wurde widerrufen"
msgid "Token has expired"
msgstr "Token ist abgelaufen"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API Token"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API-Tokens"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Tokenname"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Benutzerdefinierter Tokenname"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Token Ablaufdatum"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Zuletzt gesehen"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Das letzte Mal, wo das Token verwendet wurde"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Widerrufen"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Berechtigung geändert"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Ansicht"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Berechtigung Einträge anzuzeigen"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Hinzufügen"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Berechtigung Einträge zu erstellen"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Ändern"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Berechtigungen Einträge zu ändern"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Löschen"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "Interne"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Gast"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Sprache"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "Bevorzugte Sprache für diesen Benutzer"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Name anzeigen"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "Organisation"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po
index 79f446f068..2cb2473cca 100644
--- a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "Το API endpoint δε βρέθηκε"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Τα Προϊόντα πρέπει να δοθούν ως λίστα"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Η λίστα Προϊόντων που δόθηκε δεν είναι έγκυρη"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Το φίλτρο all πρέπει να χρησιμοποιείται μόνο με τιμή true"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Κανένα Aντικείμενο δεν ταιριάζει στα κριτήρια που δόθηκαν"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Δεν δόθηκαν δεδομένα"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Αυτό το πεδίο πρέπει να είναι μοναδικό."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Δεν έχετε δικαιώματα να το δείτε αυτό"
@@ -65,11 +65,11 @@ msgstr "Επιβεβαίωση διεύθυνσης email"
msgid "You must type the same email each time."
msgstr "Πρέπει να πληκτρολογήσετε το ίδιο email κάθε φορά."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Η παρεχόμενη κύρια διεύθυνση ηλεκτρονικού ταχυδρομείου δεν είναι έγκυρη."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Ο παρεχόμενος τομέας ηλεκτρονικού ταχυδρομείου δεν έχει εγκριθεί."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Δεν ήταν δυνατή η μετατροπή από {original} σε {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Μη έγκυρη ποσότητα"
@@ -105,22 +105,22 @@ msgstr "Εισάγετε ημερομηνία"
msgid "Invalid decimal value"
msgstr "Μη έγκυρη δεκαδική τιμή"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Σημειώσεις"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Η τιμή '{name}' δεν εμφανίζεται σε μορφή μοτίβου"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Η παρεχόμενη τιμή δεν ταιριάζει με το απαιτούμενο απαραραίητη μοτίβο: "
@@ -164,51 +164,51 @@ msgstr "Αφαιρέστε τα HTML tags από την τιμή που εισά
msgid "Data contains prohibited markdown content"
msgstr "Τα δεδομένα περιέχουν απαγορευμένο περιεχόμενο markdown"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Σφάλμα σύνδεσης"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Ο διακομιστής απάντησε με μη έγκυρο κωδικό κατάστασης"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Προέκυψε σφάλμα"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Ο διακομιστής ανταποκρίθηκε με \"Invalid Content-Length value\""
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Η εικόνα είναι πολύ μεγάλη σε μέγεθος"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Η λήψη εικόνας ξεπέρασε το μέγιστο μέγεθος"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας"
@@ -220,117 +220,121 @@ msgstr "Σύνδεση στην εφαρμογή"
msgid "Email"
msgstr "Email"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Πρέπει να ενεργοποιήσετε τον έλεγχο ταυτότητας δύο παραγόντων πριν κάνετε οτιδήποτε άλλο."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Σφάλμα κατά την εκτέλεση επικύρωσης προσθέτου"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Τα μεταδεδομένα πρέπει να είναι ένα αντικείμενο dict python"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Μεταδεδομένα Πρόσθετου"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON πεδίο μεταδεδομένων, για χρήση από εξωτερικά πρόσθετα"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Λανθασμένο μοτίβο"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Δώσατε λάθος μορφή κλειδιού"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Λείπει το απαραίτητο κλειδί"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Το πεδίο δεν μπορεί να είναι άδειο"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Η αναφορά πρέπει να ταιριάζει με το απαιτούμενο μοτίβο"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Ο αριθμός αναφοράς είναι πολύ μεγάλος"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Μη έγκυρη επιλογή"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Όνομα"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Περιγραφή"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Περιγραφή (προαιρετική)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Μονοπάτι"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Διπλότυπα ονόματα δεν μπορούν να υπάρχουν στον ίδιο γονέα"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Σημειώσεις Markdown (προαιρετικό)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Στοιχεία Barcode"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Δεδομένα barcode τρίτων"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Hash barcode"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Μοναδικό hash δεδομένων barcode"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Βρέθηκε υπάρχων barcode"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Σφάλμα διακομιστή"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Πρέπει να είναι αριθμός"
msgid "Currency"
msgstr "Νόμισμα"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Επιλέξτε νόμισμα από τις διαθέσιμες επιλογές"
@@ -521,11 +525,11 @@ msgstr "Κινέζικα (απλοποιημένα)"
msgid "Chinese (Traditional)"
msgstr "Κινέζικα (Παραδοσιακά)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Διαθέσιμη ενημέρωση"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Μια ενημέρωση για το InvenTree είναι διαθέσιμη"
@@ -537,7 +541,7 @@ msgstr "Μη έγκυρη φυσική μονάδα"
msgid "Not a valid currency code"
msgstr "Μη έγκυρος κωδικός συναλλάγματος"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Κατάσταση παραγγελίας"
@@ -546,23 +550,23 @@ msgstr "Κατάσταση παραγγελίας"
msgid "Parent Build"
msgstr "Γονική Κατασκευή"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Συμπερίληψη παραλλαγών"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Συμπερίληψη παραλλαγών"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Συμπερίληψη παραλλαγών"
msgid "Part"
msgstr "Εξάρτημα"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Κατηγορία"
@@ -593,7 +597,7 @@ msgstr "Κατηγορία"
msgid "Ancestor Build"
msgstr "Πρόγονος κατασκευής"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Ανατεθειμένες σε εμένα"
@@ -601,11 +605,11 @@ msgstr "Ανατεθειμένες σε εμένα"
msgid "Assigned To"
msgstr "Ανατεθεί σε"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Δημιουργήθηκε πριν από"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Δημιουργήθηκε μετά από"
@@ -641,99 +645,99 @@ msgstr "Ολοκληρώθηκε πριν από"
msgid "Completed after"
msgstr "Ολοκληρώθηκε μετά από"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Ελάχιστη ημερομηνία"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Μέγιστη ημερομηνία"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Εξαίρεση δέντρου"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Αναλώσιμο"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Προαιρετικό"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Συναρμολόγηση"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Υπό παρακολούθηση"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Υπό δοκιμή"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Εκκρεμής παραγγελία"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Κατανεμημένο"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Καταναλωμένο"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Διαθέσιμο"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "Σε παραγγελία"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Σειρά Κατασκευής"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Τοποθεσία"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Έξοδος"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Φιλτράρισμα με βάση το ID του αποθέματος εξόδου. Χρησιμοποιήστε 'null' για να βρείτε μη εγκατεστημένα στοιχεία κατασκευής"
@@ -773,9 +777,9 @@ msgstr "Η ημερομηνία στόχος πρέπει να είναι μετ
msgid "Build Order Reference"
msgstr "Αναφορά Παραγγελίας Κατασκευής"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Κωδικός Παραγγελίας Πωλήσεων"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Τοποθεσία Προέλευσης"
@@ -821,7 +825,7 @@ msgstr "Εξωτερική κατασκευή"
msgid "This build order is fulfilled externally"
msgstr "Αυτή η εντολή κατασκευής εκτελείται εξωτερικά"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Τοποθεσία Προορισμού"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Κωδικός κατάστασης κατασκευής"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Κωδικός Παρτίδας"
@@ -883,8 +887,8 @@ msgstr "Ημερομηνία ολοκλήρωσης στόχου"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Ημερομηνία ολοκλήρωσης της κατασκευής. Η κατασκευή θα καθυστερήσει μετά από αυτή την ημερομηνία."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Ημερομηνία ολοκλήρωσης"
@@ -900,7 +904,7 @@ msgstr "Εκδόθηκε από"
msgid "User who issued this build order"
msgstr "Χρήστης που εξέδωσε αυτήν την παραγγελία κατασκευής"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Προτεραιότητα αυτής της εντολής κατασκευής"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Κωδικός Έργου"
@@ -962,9 +966,9 @@ msgstr "Η έξοδος κατασκευής δεν ταιριάζει με τη
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
@@ -999,7 +1003,7 @@ msgstr "Αντικείμενο κατασκευής"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακ
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο"
@@ -1057,8 +1061,8 @@ msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμ
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Στοιχείο Αποθέματος"
@@ -1082,7 +1086,7 @@ msgstr "Αποθήκη προορισμού"
msgid "Build Level"
msgstr "Επίπεδο κατασκευής"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Όνομα Προϊόντος"
@@ -1139,7 +1143,7 @@ msgstr "Αυτόματη Κατανομή Σειριακών Αριθμών"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Αυτόματη κατανομή των απαιτούμενων στοιχείων με τους αντίστοιχους σειριακούς αριθμούς"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Οι παρακάτω σειριακοί αριθμοί υπάρχουν ήδη ή δεν είναι έγκυροι"
@@ -1272,7 +1276,7 @@ msgstr "Αντικείμενο Γραμμής Κατασκευής"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part πρέπει να δείχνει στο ίδιο εξάρτημα με τη εντολή κατασκευής"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Το στοιχείο πρέπει να υπάρχει στο απόθεμα"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr "Κατασκευή"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Aντικειμένου προμηθευτή"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Να επιτρέπονται παραλλαγές"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Στοιχείο BOM"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "Σε παραγωγή"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "Προγραμματισμένο για κατασκευή"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Εξωτερικό απόθεμα"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Διαθέσιμο απόθεμα"
@@ -1527,31 +1531,31 @@ msgstr "Εκπρόθεσμη εντολή κατασκευής"
msgid "Build order {bo} is now overdue"
msgstr "Η εντολή κατασκευής {bo} είναι πλέον εκπρόθεσμη"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "Είναι σύνδεσμος"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "Είναι αρχείο"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "Ο χρήστης δεν έχει δικαίωμα να διαγράψει αυτά τα συνημμένα"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "Ο χρήστης δεν έχει δικαίωμα να διαγράψει αυτό το συνημμένο"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Η λίστα επιλογών είναι κλειδωμένη"
@@ -1571,8 +1575,8 @@ msgstr "Δεν δόθηκαν έγκυροι κωδικοί συναλλάγμα
msgid "No plugin"
msgstr "Χωρίς πρόσθετο"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "Η συμβολοσειρά κλειδιού πρέπει να είνα
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Χρήστης"
@@ -1654,8 +1658,8 @@ msgstr "Χρήστης"
msgid "Price break quantity"
msgstr "Ποσότητα κλιμακωτής τιμής"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Τιμή"
@@ -1677,8 +1681,8 @@ msgstr "Όνομα για αυτό το webhook"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Ενεργό"
@@ -1686,7 +1690,7 @@ msgstr "Ενεργό"
msgid "Is this webhook active"
msgstr "Είναι αυτό το webhook ενεργό"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token"
@@ -1756,7 +1760,7 @@ msgstr "Τίτλος"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Ορισμός"
msgid "Unit definition"
msgstr "Ορισμός μονάδας"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Συνημμένο"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "Λογικό κλειδί κατάστασης που είναι ισοδύναμο με αυτή την προσαρμοσμένη κατάσταση στη λογική της εφαρμογής"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Τιμή"
@@ -2172,7 +2176,7 @@ msgstr "Έγκυρες επιλογές για αυτή την παράμετρ
msgid "Selection list for this parameter"
msgstr "Λίστα επιλογών για αυτή την παράμετρο"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Ενεργό"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Πρότυπο"
@@ -2262,7 +2266,7 @@ msgstr "Ημερομηνία και ώρα της σάρωσης barcode"
msgid "URL endpoint which processed the barcode"
msgstr "URL endpoint που επεξεργάστηκε το barcode"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Πλαίσιο"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Δεδομένα απόκρισης από τη σάρωση barcode"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Αποτέλεσμα"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "Νήματα email"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Κλειδί"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} ακυρώθηκε"
msgid "A order that is assigned to you was canceled"
msgstr "Μια παραγγελία που σας είχε ανατεθεί ακυρώθηκε"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Είδη που παραλήφθηκαν"
@@ -2524,7 +2528,7 @@ msgstr "Όνομα αρχείου"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Τύπος μοντέλου"
@@ -2669,8 +2673,8 @@ msgstr "Κάθε πότε θα ενημερώνονται οι συναλλαγ
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "ημέρες"
@@ -2914,8 +2918,8 @@ msgstr "Τα Προϊόντα είναι πρότυπα από προεπιλο
msgid "Parts can be assembled from other components by default"
msgstr "Τα Προϊόντα μπορούν να συναρμολογούνται από άλλα συστατικά από προεπιλογή"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Συστατικό"
@@ -2931,7 +2935,7 @@ msgstr "Αγοράσιμο"
msgid "Parts are purchaseable by default"
msgstr "Τα Προϊόντα είναι αγοράσιμα από προεπιλογή"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Πωλήσιμο"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Καταγραφή σφαλμάτων που προκύπτουν κατά τη δημιουργία αναφορών"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Μέγεθος σελίδας"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Να επιτρέπεται η μεταφορά στοιχείων αποθέματος που δεν είναι διαθέσιμα μεταξύ τοποθεσιών αποθέματος"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Πρότυπο αναφοράς εντολής κατασκευής"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Απαιτούμενο πρότυπο για τη δημιουργία του πεδίου αναφοράς εντολής κατασκευής"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Απαίτηση υπεύθυνου κατόχου"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Πρέπει να οριστεί υπεύθυνος ιδιοκτήτης για κάθε παραγγελία"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Απαίτηση ενεργού προϊόντος"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Αποτροπή δημιουργίας εντολής παραγωγής για ανενεργά προϊόντα"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Απαίτηση κλειδωμένου προϊόντος"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Αποτροπή δημιουργίας εντολής παραγωγής για ξεκλείδωτα προϊόντα"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "Απαίτηση έγκυρης BOM"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Αποτροπή δημιουργίας εντολής παραγωγής αν δεν έχει επικυρωθεί η BOM"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "Απαίτηση κλειστών θυγατρικών εντολών"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Αποτροπή ολοκλήρωσης εντολής παραγωγής μέχρι να κλείσουν όλες οι θυγατρικές εντολές"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "Εξωτερικές εντολές παραγωγής"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "Ενεργοποίηση λειτουργίας εξωτερικών εντολών παραγωγής"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Φραγή έως ότου περάσουν τα τεστ"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Αποτροπή ολοκλήρωσης εξόδων παραγωγής μέχρι να περάσουν όλα τα απαιτούμενα τεστ"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Ενεργοποίηση εντολών επιστροφής"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Ενεργοποίηση λειτουργίας εντολών επιστροφής στη διεπαφή χρήστη"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Μοτίβο αναφοράς εντολής επιστροφής"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Απαιτούμενο μοτίβο για τη δημιουργία του πεδίου αναφοράς εντολής επιστροφής"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Επεξεργασία ολοκληρωμένων εντολών επιστροφής"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Επιτρέπει την επεξεργασία εντολών επιστροφής μετά την ολοκλήρωσή τους"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Μοτίβο αναφοράς εντολής πώλησης"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Απαιτούμενο μοτίβο για τη δημιουργία του πεδίου αναφοράς εντολής πώλησης"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Προεπιλεγμένη αποστολή εντολής πώλησης"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Ενεργοποίηση δημιουργίας προεπιλεγμένης αποστολής με τις εντολές πώλησης"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Επεξεργασία ολοκληρωμένων εντολών πώλησης"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Επιτρέπει την επεξεργασία εντολών πώλησης μετά την αποστολή ή ολοκλήρωσή τους"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "Η αποστολή απαιτεί έλεγχο"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "Αποτροπή ολοκλήρωσης αποστολών μέχρι να ελεγχθούν τα είδη"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Σήμανση αποσταλμένων εντολών ως ολοκληρωμένων"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Οι εντολές πώλησης που επισημαίνονται ως αποσταλμένες ολοκληρώνονται αυτόματα, παρακάμπτοντας την κατάσταση «απεσταλμένο»"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Μοτίβο αναφοράς εντολής αγοράς"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Απαιτούμενο μοτίβο για τη δημιουργία του πεδίου αναφοράς εντολής αγοράς"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Επεξεργασία ολοκληρωμένων εντολών αγοράς"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Επιτρέπει την επεξεργασία εντολών αγοράς μετά την αποστολή ή ολοκλήρωσή τους"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Μετατροπή νομίσματος"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "Μετατροπή της αξίας είδους στο βασικό νόμισμα κατά την παραλαβή αποθέματος"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Αυτόματη ολοκλήρωση εντολών αγοράς"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Αυτόματη σήμανση εντολών αγοράς ως ολοκληρωμένων όταν έχουν παραληφθεί όλα τα είδη"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Ενεργοποίηση υπενθύμισης κωδικού"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Ενεργοποίηση λειτουργίας υπενθύμισης κωδικού στις σελίδες σύνδεσης"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Ενεργοποίηση εγγραφής"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Ενεργοποίηση αυτοεγγραφής χρηστών στις σελίδες σύνδεσης"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Ενεργοποίηση SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Ενεργοποίηση SSO στις σελίδες σύνδεσης"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Ενεργοποίηση εγγραφής μέσω SSO"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Ενεργοποίηση αυτοεγγραφής μέσω SSO στις σελίδες σύνδεσης"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "Ενεργοποίηση συγχρονισμού ομάδων SSO"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Ενεργοποίηση συγχρονισμού ομάδων InvenTree με ομάδες από τον IdP"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "Κλειδί ομάδας SSO"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "Το όνομα του πεδίου ομάδων που παρέχεται από τον IdP"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "Χάρτης ομάδων SSO"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "Χαρτογράφηση ομάδων SSO σε τοπικές ομάδες InvenTree. Αν η ομάδα δεν υπάρχει, θα δημιουργηθεί."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Αφαίρεση ομάδων εκτός SSO"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "Αν πρέπει να αφαιρούνται ομάδες από τον χρήστη όταν δεν παρέχονται από τον IdP. Η απενεργοποίηση μπορεί να προκαλέσει προβλήματα ασφαλείας"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Απαίτηση email"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Απαίτηση συμπλήρωσης email κατά την εγγραφή"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Αυτόματη συμπλήρωση χρηστών SSO"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Αυτόματη συμπλήρωση στοιχείων χρήστη από τα δεδομένα SSO"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Email δύο φορές"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Κατά την εγγραφή ζητείται το email δύο φορές"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Κωδικός δύο φορές"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Κατά την εγγραφή ζητείται ο κωδικός δύο φορές"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Επιτρεπόμενοι τομείς"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Περιορισμός εγγραφής σε συγκεκριμένους τομείς (χωρισμένοι με κόμμα, ξεκινούν με @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Ομάδα κατά την εγγραφή"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Ομάδα στην οποία εκχωρούνται οι νέοι χρήστες κατά την εγγραφή. Με ενεργό SSO sync, χρησιμοποιείται μόνο όταν δεν μπορεί να δοθεί ομάδα από τον IdP."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Επιβολή MFA"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Οι χρήστες πρέπει να χρησιμοποιούν πολυπαραγοντική ασφάλεια"
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Έλεγχος plugins κατά την εκκίνηση"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Έλεγχος ότι όλα τα plugins είναι εγκατεστημένα κατά την εκκίνηση – χρήσιμο σε container περιβάλλοντα"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Έλεγχος για ενημερώσεις plugin"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Ενεργοποίηση περιοδικών ελέγχων για ενημερώσεις εγκατεστημένων plugins"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Ενεργοποίηση URL integration"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Ενεργοποίηση προσθήκης URL routes από plugins"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Ενεργοποίηση ενσωμάτωσης στην πλοήγηση"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Ενεργοποίηση ενσωμάτωσης των plugins στην πλοήγηση"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Ενεργοποίηση ενσωμάτωσης εφαρμογών"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Ενεργοποίηση προσθήκης εφαρμογών από plugins"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Ενεργοποίηση ενσωμάτωσης χρονοπρογραμματισμού"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Ενεργοποίηση εκτέλεσης χρονοπρογραμματισμένων εργασιών από plugins"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Ενεργοποίηση ενσωμάτωσης γεγονότων"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Ενεργοποίηση απόκρισης plugins σε εσωτερικά γεγονότα"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Ενεργοποίηση ενσωμάτωσης διεπαφής"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Ενεργοποίηση ενσωμάτωσης plugins στη διεπαφή χρήστη"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "Ενεργοποίηση ενσωμάτωσης email"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "Ενεργοποίηση επεξεργασίας εισερχόμενων/εξερχόμενων emails από plugins"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "Ενεργοποίηση κωδικών έργου"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Ενεργοποίηση κωδικών έργου για την παρακολούθηση projects"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "Ενεργοποίηση καταγραφής ιστορικών επιπέδων και αξιών αποθέματος"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Εξαίρεση εξωτερικών τοποθεσιών"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Περίοδος αυτόματης απογραφής"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Εμφάνιση πλήρους ονόματος χρηστών"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Εμφάνιση του πλήρους ονόματος των χρηστών αντί για το όνομα χρήστη"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "Εμφάνιση προφίλ χρηστών"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "Εμφάνιση προφίλ χρηστών στη σελίδα προφίλ τους"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Ενεργοποίηση δεδομένων σταθμού δοκιμών"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Ενεργοποίηση συλλογής δεδομένων σταθμού δοκιμών για τα αποτελέσματα δοκιμών"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "Ενεργοποίηση ping μηχανημάτων"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "Ενεργοποίηση περιοδικού ping των καταχωρημένων μηχανημάτων για έλεγχο της κατάστασής τους"
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "Δεν δόθηκε τύπος μοντέλου συνημμένου"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Μη έγκυρος τύπος μοντέλου συνημμένου"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "Οι ελάχιστες θέσεις δεν μπορούν να είναι περισσότερες από τις μέγιστες"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "Οι μέγιστες θέσεις δεν μπορούν να είναι λιγότερες από τις ελάχιστες"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Δεν επιτρέπεται κενός τομέας."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Μη έγκυρο όνομα τομέα: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "Η τιμή πρέπει να είναι με κεφαλαία"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "Η τιμή πρέπει να είναι έγκυρο όνομα μεταβλητής"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "Ο προμηθευτής είναι ενεργός"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Κατασκευαστής"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Εταιρεία"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Email επικοινωνίας"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Επαφή"
@@ -4297,7 +4309,7 @@ msgstr "ΑΦΜ"
msgid "Company Tax ID"
msgstr "ΑΦΜ εταιρείας"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Διεύθυνση"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Σύνδεσμος σε πληροφορίες διεύθυνσης (εξωτερικό)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Προϊόν κατασκευαστή"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Επιλογή κατασκευαστή"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "MPN"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Το συνδεδεμένο προϊόν κατασκευαστή πρέπει να αναφέρεται στο ίδιο βασικό προϊόν"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Προμηθευτής"
@@ -4448,7 +4460,7 @@ msgstr "Προμηθευτής"
msgid "Select supplier"
msgstr "Επιλογή προμηθευτή"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Κωδικός αποθέματος προμηθευτή"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Ελάχιστη χρέωση (π.χ. χρέωση αποθήκευσης)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Συσκευασία"
@@ -4533,7 +4545,7 @@ msgstr "Προεπιλεγμένο νόμισμα που χρησιμοποιε
msgid "Company Name"
msgstr "Όνομα εταιρείας"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Σε απόθεμα"
@@ -4722,7 +4734,7 @@ msgstr "Αρχικά δεδομένα γραμμής"
msgid "Errors"
msgstr "Σφάλματα"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Έγκυρο"
@@ -4838,7 +4850,7 @@ msgstr "Αριθμός αντιτύπων προς εκτύπωση για κά
msgid "Connected"
msgstr "Συνδεδεμένος"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Άγνωστο"
@@ -4942,7 +4954,7 @@ msgstr "Κλειδί ιδιότητας"
msgid "Value of the property"
msgstr "Τιμή ιδιότητας"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Ομάδα"
@@ -4966,118 +4978,118 @@ msgstr "Μέγιστη πρόοδος"
msgid "Maximum value for progress type, required if type=progress"
msgstr "Μέγιστη τιμή για τύπο προόδου, απαιτείται αν type=progress"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Αναφορά παραγγελίας"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Σε εκκρεμότητα"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Έχει κωδικό έργου"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Δημιουργήθηκε από"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Δημιουργήθηκε πριν"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Δημιουργήθηκε μετά"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "Έχει ημερομηνία έναρξης"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "Ημερομηνία έναρξης πριν"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "Ημερομηνία έναρξης μετά"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "Έχει ημερομηνία στόχο"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Ημερομηνία στόχος πριν"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Ημερομηνία στόχος μετά"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Έχει τιμολόγηση"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Ολοκληρώθηκε πριν"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Ολοκληρώθηκε μετά"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "Εξωτερική εντολή παραγωγής"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Παραγγελία"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Η παραγγελία ολοκληρώθηκε"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Εσωτερικό προϊόν"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Η παραγγελία είναι σε εκκρεμότητα"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Ολοκληρώθηκε"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Έχει αποστολή"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Εντολή αγοράς"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Εντολή αγοράς"
msgid "Sales Order"
msgstr "Εντολές Πώλησης"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Εντολή επιστροφής"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr "Η διεύθυνση δεν αντιστοιχεί στην επιλε
msgid "Order description (optional)"
msgstr "Περιγραφή παραγγελίας (προαιρετικά)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Επιλογή κωδικού έργου για αυτή την παραγγελία"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Σύνδεσμος σε εξωτερική σελίδα"
@@ -5151,7 +5163,7 @@ msgstr "Ημερομηνία έναρξης"
msgid "Scheduled start date for this order"
msgstr "Προγραμματισμένη ημερομηνία έναρξης για αυτή την παραγγελία"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Επιθυμητή Προθεσμία"
@@ -5184,487 +5196,487 @@ msgstr "Σημείο επαφής για αυτή την παραγγελία"
msgid "Company address for this order"
msgstr "Διεύθυνση εταιρείας για αυτή την παραγγελία"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Αναφορά παραγγελίας"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Κατάσταση"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Κατάσταση εντολής αγοράς"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Εταιρεία από την οποία παραγγέλνονται τα είδη"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Αναφορά προμηθευτή"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Κωδικός αναφοράς παραγγελίας προμηθευτή"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "παραλήφθηκε από"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Ημερομηνία ολοκλήρωσης της παραγγελίας"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Προορισμός"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Προορισμός για τα παραληφθέντα είδη"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Ο προμηθευτής προϊόντος πρέπει να ταιριάζει με τον προμηθευτή της εντολής αγοράς"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Η γραμμή δεν αντιστοιχεί στην εντολή αγοράς"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "Στη γραμμή λείπει συνδεδεμένο προϊόν"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Η ποσότητα πρέπει να είναι θετικός αριθμός"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Πελάτης"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Εταιρεία στην οποία πωλούνται τα είδη"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Κατάσταση εντολής πώλησης"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Αναφορά πελάτη "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Κωδικός αναφοράς παραγγελίας πελάτη"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Ημερομηνία αποστολής"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "απεστάλη από"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "Η παραγγελία είναι ήδη ολοκληρωμένη"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "Η παραγγελία είναι ήδη ακυρωμένη"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Μόνο μια ανοικτή παραγγελία μπορεί να σημειωθεί ως ολοκληρωμένη"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Η παραγγελία δεν μπορεί να ολοκληρωθεί καθώς υπάρχουν μη ολοκληρωμένες αποστολές"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "Η παραγγελία δεν μπορεί να ολοκληρωθεί καθώς υπάρχουν μη ολοκληρωμένες δεσμεύσεις αποθέματος"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Η παραγγελία δεν μπορεί να ολοκληρωθεί καθώς υπάρχουν μη ολοκληρωμένες γραμμές"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "Η παραγγελία είναι κλειδωμένη και δεν μπορεί να τροποποιηθεί"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Ποσότητα είδους"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Αναφορά γραμμής"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Σημειώσεις γραμμής"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Ημερομηνία στόχος για αυτή τη γραμμή (αφήστε κενό για χρήση της ημερομηνίας στόχου από την παραγγελία)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Περιγραφή γραμμής (προαιρετικά)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Πρόσθετο πλαίσιο για αυτή τη γραμμή"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Τιμή μονάδας"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "Γραμμή εντολής αγοράς"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "Το προϊόν προμηθευτή πρέπει να ταιριάζει με τον προμηθευτή"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "Η εντολή παραγωγής πρέπει να έχει σημειωθεί ως εξωτερική"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "Οι εντολές παραγωγής μπορούν να συνδεθούν μόνο με προϊόντα συναρμολόγησης"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "Το προϊόν της εντολής παραγωγής πρέπει να ταιριάζει με το προϊόν της γραμμής"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Προϊόν προμηθευτή"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Παραλήφθηκε"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Αριθμός ειδών που παραλήφθηκαν"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Τιμή αγοράς"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Τιμή μονάδας αγοράς"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "Εξωτερική εντολή παραγωγής που θα καλυφθεί από αυτή τη γραμμή"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "Επιπλέον γραμμή εντολής αγοράς"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "Γραμμή εντολής πώλησης"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Μόνο πωλήσιμα προϊόντα μπορούν να αντιστοιχιστούν σε εντολή πώλησης"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Τιμή πώλησης"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Τιμή μονάδας πώλησης"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Αποστάλθηκε"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Ποσότητα που αποστάλθηκε"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "Αποστολή εντολής πώλησης"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "Η διεύθυνση αποστολής πρέπει να αντιστοιχεί στον πελάτη"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "Διεύθυνση αποστολής για αυτή την αποστολή"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Ημερομηνία αποστολής"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Ημερομηνία παράδοσης"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Ημερομηνία παράδοσης της αποστολής"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Έλεγχος από"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Χρήστης που έλεγξε αυτή την αποστολή"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Αποστολή"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Αριθμός αποστολής"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Αριθμός παρακολούθησης"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Πληροφορίες παρακολούθησης αποστολής"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Αριθμός τιμολογίου"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Αριθμός αναφοράς του σχετικού τιμολογίου"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Η αποστολή έχει ήδη σταλεί"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Η αποστολή δεν έχει δεσμευμένα είδη αποθέματος"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "Η αποστολή πρέπει να ελεγχθεί πριν μπορέσει να ολοκληρωθεί"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "Επιπλέον γραμμή εντολής πώλησης"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "Δέσμευση αποθέματος εντολής πώλησης"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "Δεν έχει αντιστοιχιστεί είδος αποθέματος"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Δεν είναι δυνατή η δέσμευση είδους αποθέματος σε γραμμή με διαφορετικό προϊόν"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Δεν είναι δυνατή η δέσμευση αποθέματος σε γραμμή χωρίς προϊόν"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Η ποσότητα δέσμευσης δεν μπορεί να υπερβαίνει την ποσότητα αποθέματος"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Η ποσότητα πρέπει να είναι 1 για σειριοποιημένο είδος αποθέματος"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Η εντολή πώλησης δεν αντιστοιχεί στην αποστολή"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Η αποστολή δεν αντιστοιχεί στην εντολή πώλησης"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Γραμμή"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Αναφορά αποστολής εντολής πώλησης"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Είδος"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Επιλογή είδους αποθέματος προς δέσμευση"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Εισαγωγή ποσότητας δέσμευσης αποθέματος"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Αναφορά εντολής επιστροφής"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Εταιρεία από την οποία επιστρέφονται τα είδη"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Κατάσταση εντολής επιστροφής"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "Γραμμή εντολής επιστροφής"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "Πρέπει να καθοριστεί είδος αποθέματος"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "Η ποσότητα επιστροφής υπερβαίνει την ποσότητα αποθέματος"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "Η ποσότητα επιστροφής πρέπει να είναι μεγαλύτερη από το μηδέν"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Μη έγκυρη ποσότητα για σειριοποιημένο είδος αποθέματος"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Επιλογή είδους προς επιστροφή από τον πελάτη"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Ημερομηνία παραλαβής"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Έκβαση"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Έκβαση για αυτή τη γραμμή"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Κόστος που σχετίζεται με την επιστροφή ή επισκευή για αυτή τη γραμμή"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "Επιπλέον γραμμή εντολής επιστροφής"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr "Αντιγραφή επιπλέον γραμμών"
msgid "Copy extra line items from the original order"
msgstr "Αντιγραφή επιπλέον γραμμών από την αρχική παραγγελία"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Αντιγραφή παραμέτρων"
@@ -5784,11 +5796,11 @@ msgstr "Συγχώνευση ειδών"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Συγχώνευση ειδών με το ίδιο προϊόν, προορισμό και ημερομηνία στόχο σε μία γραμμή"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Εσωτερικός κωδικός προϊόντος"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Εισαγάγετε κωδικό παρτίδας για τα εισερχόμενα είδη αποθέματος"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Ημερομηνία λήξης"
@@ -6056,123 +6068,131 @@ msgstr "Εκπρόθεσμη εντολή επιστροφής"
msgid "Return order {ro} is now overdue"
msgstr "Η εντολή επιστροφής {ro} είναι πλέον εκπρόθεσμη"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Με αστέρι"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Φιλτράρισμα κατά κατηγορίες με αστέρι"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Βάθος"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Φιλτράρισμα κατά βάθος κατηγορίας"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Ανώτατο επίπεδο"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Φιλτράρισμα κατά κατηγορίες ανώτατου επιπέδου"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Κατά κληρονομικότητα"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Συμπερίληψη υποκατηγοριών στα φιλτραρισμένα αποτελέσματα"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Γονική"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Φιλτράρισμα κατά γονική κατηγορία"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Εξαίρεση υποκατηγοριών κάτω από την καθορισμένη κατηγορία"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Έχει αποτελέσματα"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "Είναι παραλλαγή"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "Είναι αναθεώρηση"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "Έχει αναθεωρήσεις"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "Έγκυρο BOM"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "Κατηγορίες κατά κληρονομικότητα"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "Αν είναι αληθές, συμπεριλαμβάνονται είδη σε θυγατρικές κατηγορίες της δοσμένης κατηγορίας"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Φιλτράρισμα κατά αριθμητικό ID κατηγορίας ή τη λέξη 'null'"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "Το προϊόν συναρμολόγησης είναι υπό δοκιμή"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "Το προϊόν Προϊόντος είναι υπό δοκιμή"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Χρήσεις"
@@ -6213,7 +6233,7 @@ msgstr "Προεπιλεγμένες λέξεις-κλειδιά για προϊ
msgid "Icon"
msgstr "Εικονίδιο"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Εικονίδιο (προαιρετικό)"
@@ -6349,7 +6369,7 @@ msgstr "Λέξεις-κλειδιά προϊόντος για βελτίωση
msgid "Part category"
msgstr "Κατηγορία προϊόντος"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6358,7 +6378,7 @@ msgstr "IPN"
msgid "Part revision or version number"
msgstr "Αριθμός αναθεώρησης ή έκδοσης προϊόντος"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Αναθεώρηση"
@@ -6382,7 +6402,7 @@ msgstr "Προεπιλεγμένη λήξη"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Χρόνος λήξης (σε ημέρες) για είδη αποθέματος αυτού του προϊόντος"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Ελάχιστο απόθεμα"
@@ -6390,7 +6410,7 @@ msgstr "Ελάχιστο απόθεμα"
msgid "Minimum allowed stock level"
msgstr "Ελάχιστο επιτρεπτό επίπεδο αποθέματος"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Συνολικό διαθέσιμο απόθεμα κατά τον χρόνο απογραφής"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Ημερομηνία"
@@ -6759,7 +6779,7 @@ msgstr "Υποπροϊόν"
msgid "Select part to be used in BOM"
msgstr "Επιλέξτε προϊόν που θα χρησιμοποιηθεί στο BOM"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr "Γονική κατηγορία"
msgid "Parent part category"
msgstr "Γονική κατηγορία προϊόντος"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Υποκατηγορίες"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Αποτελέσματα"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Αριθμός αποτελεσμάτων που έχουν καταγραφεί για αυτό το πρότυπο"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Νόμισμα αγοράς για αυτό το είδος αποθέματος"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "Το αρχείο δεν είναι εικόνα"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Αρχικό προϊόν"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Επιλέξτε αρχικό προϊόν για αντιγραφή"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Αντιγραφή εικόνας"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Αντιγραφή εικόνας από το αρχικό προϊόν"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Αντιγραφή BOM"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Αντιγραφή λίστας υλικών (BOM) από το αρχικό προϊόν"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Αντιγραφή δεδομένων παραμέτρων από το αρχικό προϊόν"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Αντιγραφή σημειώσεων"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Αντιγραφή σημειώσεων από το αρχικό προϊόν"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "Αντιγραφή δοκιμών"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "Αντιγραφή προτύπων δοκιμών από το αρχικό προϊόν"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Αρχική ποσότητα αποθέματος"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Καθορίστε αρχική ποσότητα αποθέματος για αυτό το προϊόν. Αν η ποσότητα είναι μηδέν, δεν προστίθεται απόθεμα"
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Αρχική τοποθεσία αποθέματος"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Καθορίστε αρχική τοποθεσία αποθέματος για αυτό το προϊόν"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Επιλέξτε προμηθευτή (ή αφήστε κενό για παράλειψη)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Επιλέξτε κατασκευαστή (ή αφήστε κενό για παράλειψη)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Κωδικός προϊόντος κατασκευαστή"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "Η επιλεγμένη εταιρεία δεν είναι έγκυρος προμηθευτής"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "Η επιλεγμένη εταιρεία δεν είναι έγκυρος κατασκευαστής"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Υπάρχει ήδη προϊόν κατασκευαστή με αυτό το MPN"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Υπάρχει ήδη προϊόν προμηθευτή με αυτό το SKU"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Όνομα κατηγορίας"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Σε παραγωγή"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "Ποσότητα αυτού του προϊόντος που βρίσκεται αυτή τη στιγμή σε παραγωγή"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Εκκρεμής ποσότητα αυτού του προϊόντος που έχει προγραμματιστεί για παραγωγή"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Είδη αποθέματος"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Αναθεωρήσεις"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Συνολικό απόθεμα"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Μη δεσμευμένο απόθεμα"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Απόθεμα παραλλαγών"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Αντιγραφή προϊόντος"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Αντιγραφή αρχικών δεδομένων από άλλο προϊόν"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Αρχικό απόθεμα"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Δημιουργία προϊόντος με αρχική ποσότητα αποθέματος"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Πληροφορίες προμηθευτή"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Προσθήκη αρχικών πληροφοριών προμηθευτή για αυτό το προϊόν"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Αντιγραφή παραμέτρων κατηγορίας"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Αντιγραφή προτύπων παραμέτρων από την επιλεγμένη κατηγορία προϊόντος"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Υπάρχουσα εικόνα"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Όνομα αρχείου υπάρχουσας εικόνας προϊόντος"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Το αρχείο εικόνας δεν υπάρχει"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Επικύρωση ολόκληρης της λίστας υλικών (BOM)"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Μπορεί να παραχθεί"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "Απαιτείται για εντολές παραγωγής"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "Δεσμευμένο σε εντολές παραγωγής"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "Απαιτείται για εντολές πώλησης"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "Δεσμευμένο σε εντολές πώλησης"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Ελάχιστη τιμή"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Παράκαμψη υπολογισμένης τιμής για την ελάχιστη τιμή"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Νόμισμα ελάχιστης τιμής"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Μέγιστη τιμή"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Παράκαμψη υπολογισμένης τιμής για τη μέγιστη τιμή"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Νόμισμα μέγιστης τιμής"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Ενημέρωση"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Ενημέρωση τιμολόγησης για αυτό το προϊόν"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Δεν ήταν δυνατή η μετατροπή από τα δοθέντα νομίσματα σε {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Η ελάχιστη τιμή δεν πρέπει να είναι μεγαλύτερη από τη μέγιστη τιμή"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Η μέγιστη τιμή δεν πρέπει να είναι μικρότερη από την ελάχιστη τιμή"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "Επιλέξτε τη γονική συναρμολόγηση"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "Επιλέξτε το προϊόν Προϊόντος"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Επιλέξτε προϊόν από το οποίο θα αντιγραφεί το BOM"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Αφαίρεση υπαρχόντων δεδομένων"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Αφαίρεση υπαρχόντων στοιχείων BOM πριν την αντιγραφή"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Συμπερίληψη κληρονομημένων"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Συμπερίληψη στοιχείων BOM που κληρονομούνται από προϊόντα προτύπων"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Παράλειψη μη έγκυρων γραμμών"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Ενεργοποιήστε αυτή την επιλογή για να παραλείπονται οι μη έγκυρες γραμμές"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Αντιγραφή εναλλακτικών προϊόντων"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Αντιγραφή εναλλακτικών προϊόντων κατά την αντιγραφή στοιχείων BOM"
@@ -7326,91 +7346,91 @@ msgstr "Δεν έχει καθοριστεί ενέργεια"
msgid "No matching action found"
msgstr "Δεν βρέθηκε αντίστοιχη ενέργεια"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Δεν βρέθηκε αντιστοίχιση για τα δεδομένα barcode"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Βρέθηκε αντιστοίχιση για τα δεδομένα barcode"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "Το μοντέλο δεν υποστηρίζεται"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "Δεν βρέθηκε η συγκεκριμένη εγγραφή του μοντέλου"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Το barcode αντιστοιχεί σε υπάρχον είδος"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Δεν βρέθηκαν αντίστοιχα δεδομένα προϊόντος"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Δεν βρέθηκαν αντίστοιχα προϊόντα προμηθευτή"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Βρέθηκαν πολλαπλά αντίστοιχα προϊόντα προμηθευτή"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "Δεν βρέθηκε αντίστοιχο πρόσθετο για τα δεδομένα barcode"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Αντίστοιχο προϊόν προμηθευτή"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Το είδος έχει ήδη παραληφθεί"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "Δεν υπάρχει πρόσθετο που να ταιριάζει για το barcode προμηθευτή"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Βρέθηκαν πολλαπλές αντίστοιχες γραμμές"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Δεν βρέθηκε αντίστοιχη γραμμή"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Δεν δόθηκε εντολή πώλησης"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Το barcode δεν αντιστοιχεί σε υπάρχον είδος αποθέματος"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Το είδος αποθέματος δεν ταιριάζει με τη γραμμή"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Μη επαρκές διαθέσιμο απόθεμα"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Το είδος αποθέματος δεσμεύτηκε στην εντολή πώλησης"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Μη επαρκείς πληροφορίες"
@@ -7992,7 +8012,7 @@ msgstr "Περίγραμμα"
msgid "Print a border around each label"
msgstr "Εκτύπωση περιγράμματος γύρω από κάθε ετικέτα"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Οριζόντιος προσανατολισμός"
@@ -8072,77 +8092,77 @@ msgstr "Παρέχει υποστήριξη για σάρωση barcodes TME"
msgid "The Supplier which acts as 'TME'"
msgstr "Ο προμηθευτής που λειτουργεί ως 'TME'"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "Η εγκατάσταση πρόσθετων είναι απενεργοποιημένη"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Το πρόσθετο εγκαταστάθηκε με επιτυχία"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Το πρόσθετο εγκαταστάθηκε στο {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "Το πρόσθετο δεν βρέθηκε στο μητρώο"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "Το πρόσθετο δεν είναι πακεταρισμένο πρόσθετο"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "Δεν βρέθηκε όνομα πακέτου πρόσθετου"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "Μόνο οι χρήστες προσωπικού μπορούν να διαχειρίζονται πρόσθετα"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "Η απεγκατάσταση προσθέτων είναι απενεργοποιημένη"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Το πρόσθετο δεν μπορεί να απεγκατασταθεί καθώς είναι αυτή τη στιγμή ενεργό"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr "Το πρόσθετο δεν μπορεί να απεγκατασταθεί καθώς είναι υποχρεωτικό"
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr "Το πρόσθετο δεν μπορεί να απεγκατασταθεί καθώς είναι δείγμα πρόσθετου"
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr "Το πρόσθετο δεν μπορεί να απεγκατασταθεί καθώς είναι ενσωματωμένο πρόσθετο"
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "Το πρόσθετο δεν είναι εγκατεστημένο"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "Η εγκατάσταση του πρόσθετου δεν βρέθηκε"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "Το πρόσθετο απεγκαταστάθηκε με επιτυχία"
@@ -8194,21 +8214,21 @@ msgstr "Πρόσθετο πακέτου"
msgid "Plugin"
msgstr "Πρόσθετο"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Δεν βρέθηκε δημιουργός"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Το πρόσθετο '{p}' δεν είναι συμβατό με την τρέχουσα έκδοση InvenTree {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Το πρόσθετο απαιτεί τουλάχιστον την έκδοση {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Το πρόσθετο απαιτεί το πολύ την έκδοση {v}"
@@ -8481,136 +8501,136 @@ msgstr "Legal"
msgid "Letter"
msgstr "Letter"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "Υπάρχει ήδη αρχείο προτύπου με αυτό το όνομα"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Όνομα προτύπου"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Περιγραφή προτύπου"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "Αριθμός αναθεώρησης (αυτόματη αύξηση)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Συσχέτιση με μοντέλο κατά την εκτύπωση"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Αποθήκευση του παραγόμενου αναφοράς ως συνημμένου στην συνδεδεμένη εγγραφή μοντέλου κατά την εκτύπωση"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Μοτίβο ονόματος αρχείου"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "Μοτίβο για τη δημιουργία ονομάτων αρχείων"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "Το πρότυπο είναι ενεργό"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "Τύπος μοντέλου-στόχου για το πρότυπο"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Φίλτρα"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "Φίλτρα ερωτημάτων προτύπου (λίστα ζευγών key=value χωρισμένων με κόμμα)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Αρχείο προτύπου"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Μέγεθος σελίδας για αναφορές PDF"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Απόδοση αναφοράς σε οριζόντιο προσανατολισμό"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "Συγχώνευση"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr "Απόδοση μίας ενιαίας αναφοράς για τα επιλεγμένα είδη"
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "Αναφορά που δημιουργήθηκε από το πρότυπο {self.name}"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr "Σφάλμα σύνταξης προτύπου"
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr "Σφάλμα κατά την απόδοση της αναφοράς"
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "Σφάλμα κατά τη δημιουργία της αναφοράς"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr "Σφάλμα κατά τη συγχώνευση των αποτελεσμάτων αναφοράς"
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Πλάτος [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Πλάτος ετικέτας, σε mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Ύψος [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Ύψος ετικέτας, σε mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "Σφάλμα κατά την εκτύπωση ετικετών"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Απόσπασμα"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Αρχείο αποσπάσματος αναφοράς"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Περιγραφή αρχείου αποσπάσματος"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Πόρος"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Αρχείο πόρου αναφοράς"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Περιγραφή αρχείου πόρου"
@@ -8766,200 +8786,200 @@ msgstr "Χωρίς αποτέλεσμα"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Το αρχείο εικόνας δεν βρέθηκε"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "Το tag part_image απαιτεί μία παρουσία Aντικειμένου"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "Το tag company_image απαιτεί ένα Aντικειμένου Company"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "Φιλτράρισμα ανά βάθος τοποθεσίας"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "Φιλτράρισμα κατά τοποθεσίες ανώτατου επιπέδου"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "Συμπερίληψη υποτοποθεσιών στα φιλτραρισμένα αποτελέσματα"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Γονική τοποθεσία"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Φιλτράρισμα βάσει γονικής τοποθεσίας"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Όνομα προϊόντος (χωρίς διάκριση πεζών/κεφαλαίων)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "Το όνομα προϊόντος περιέχει (χωρίς διάκριση πεζών/κεφαλαίων)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Όνομα προϊόντος (regex)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "IPN προϊόντος (χωρίς διάκριση πεζών/κεφαλαίων)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "Το IPN προϊόντος περιέχει (χωρίς διάκριση πεζών/κεφαλαίων)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "IPN προϊόντος (regex)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Ελάχιστο απόθεμα"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Μέγιστο απόθεμα"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Κωδικός κατάστασης"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Εξωτερική τοποθεσία"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "Αναλωμένο από εντολή παραγωγής"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "Εγκατεστημένο σε άλλο είδος αποθέματος"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Δέντρο προϊόντος"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Ενημερώθηκε πριν από"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Ενημερώθηκε μετά από"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Απογραφή πριν από"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Απογραφή μετά από"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Ημερομηνία λήξης πριν από"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Ημερομηνία λήξης μετά από"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Παλαιωμένο"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr "Δώστε ένα PK είδους αποθέματος για να εξαιρεθεί αυτό και όλοι οι απόγονοί του"
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr "Διαδοχικές τοποθεσίες"
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr "Αν είναι true, περιλαμβάνει είδη σε θυγατρικές τοποθεσίες της δεδομένης τοποθεσίας"
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr "Φιλτράρισμα κατά αριθμητικό ID τοποθεσίας ή τη λέξη 'null'"
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Απαιτείται ποσότητα"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Πρέπει να δοθεί έγκυρο προϊόν"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "Το δοθέν προϊόν προμηθευτή δεν υπάρχει"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "Το προϊόν προμηθευτή έχει ορισμένο μέγεθος συσκευασίας, αλλά η σημαία use_pack_size δεν έχει τεθεί"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Δεν μπορούν να δοθούν σειριακοί αριθμοί για μη ιχνηλάσιμο προϊόν"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr "Συμπερίληψη εγκατεστημένων"
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr "Αν είναι true, περιλαμβάνει αποτελέσματα δοκιμών για είδη που είναι εγκατεστημένα κάτω από το συγκεκριμένο είδος αποθέματος"
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr "Φιλτράρισμα κατά αριθμητικό ID είδους αποθέματος"
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr "Είδος αποθέματος με ID {id} δεν υπάρχει"
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Επιλέξτε ιδιοκτήτη"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Τα είδη αποθέματος δεν μπορούν να τοποθετηθούν απευθείας σε δομικές τοποθεσίες αποθέματος, αλλά μπορούν να τοποθετηθούν σε θυγατρικές τοποθεσίες."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Εξωτερικό"
@@ -9101,7 +9121,7 @@ msgstr "Επιλέξτε αντίστοιχο προϊόν προμηθευτή
msgid "Where is this stock item located?"
msgstr "Πού βρίσκεται αυτό το είδος αποθέματος;"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Συσκευασία στην οποία αποθηκεύεται αυτό το είδος αποθέματος"
@@ -9117,7 +9137,7 @@ msgstr "Είναι αυτό το είδος εγκατεστημένο σε άλ
msgid "Serial number for this item"
msgstr "Σειριακός αριθμός για αυτό το είδος"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Κωδικός παρτίδας για αυτό το είδος αποθέματος"
@@ -9206,7 +9226,7 @@ msgstr "Η ποσότητα δεν αντιστοιχεί στους σειρι
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "Το πρότυπο δοκιμής δεν υπάρχει"
@@ -9226,7 +9246,7 @@ msgstr "Το είδος αποθέματος περιέχει άλλα είδη"
msgid "Stock item has been assigned to a customer"
msgstr "Το είδος αποθέματος έχει αντιστοιχιστεί σε πελάτη"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Το είδος αποθέματος βρίσκεται αυτή τη στιγμή σε παραγωγή"
@@ -9234,7 +9254,7 @@ msgstr "Το είδος αποθέματος βρίσκεται αυτή τη σ
msgid "Serialized stock cannot be merged"
msgstr "Σειριακό απόθεμα δεν μπορεί να συγχωνευθεί"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Διπλότυπα είδη αποθέματος"
@@ -9250,71 +9270,71 @@ msgstr "Τα είδη αποθέματος πρέπει να αναφέροντ
msgid "Stock status codes must match"
msgstr "Οι κωδικοί κατάστασης αποθέματος πρέπει να ταιριάζουν"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Το StockItem δεν μπορεί να μετακινηθεί καθώς δεν βρίσκεται σε απόθεμα"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "Ιχνηλάτηση είδους αποθέματος"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Σημειώσεις καταχώρησης"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "Αποτέλεσμα δοκιμής είδους αποθέματος"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Πρέπει να δοθεί τιμή για αυτή τη δοκιμή"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Πρέπει να μεταφορτωθεί συνημμένο για αυτή τη δοκιμή"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "Μη έγκυρη τιμή για αυτή τη δοκιμή"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Αποτέλεσμα δοκιμής"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Τιμή αποτελέσματος δοκιμής"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Συνημμένο αποτελέσματος δοκιμής"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Σημειώσεις δοκιμής"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "Σταθμός δοκιμής"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "Ο αναγνωριστικός κωδικός του σταθμού δοκιμής όπου πραγματοποιήθηκε η δοκιμή"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Έναρξη"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "Χρονική σήμανση έναρξης της δοκιμής"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Ολοκλήρωση"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "Χρονική σήμανση λήξης της δοκιμής"
@@ -9398,7 +9418,7 @@ msgstr "Εισαγάγετε σειριακούς αριθμούς για νέα
msgid "Supplier Part Number"
msgstr "Κωδικός προϊόντος προμηθευτή"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Ληγμένο"
@@ -9428,8 +9448,8 @@ msgstr "Δεν δόθηκε είδος αποθέματος"
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Η ποσότητα δεν πρέπει να υπερβαίνει το διαθέσιμο απόθεμα ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Τοποθεσία προορισμού αποθέματος"
@@ -9501,127 +9521,131 @@ msgstr "Επιλέξτε είδη αποθέματος για αλλαγή κα
msgid "No stock items selected"
msgstr "Δεν επιλέχθηκαν είδη αποθέματος"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Υποτοποθεσίες"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "Γονική τοποθεσία αποθέματος"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Το προϊόν πρέπει να είναι διαθέσιμο για πώληση"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "Το είδος έχει δεσμευτεί σε εντολή πώλησης"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Το είδος έχει δεσμευτεί σε εντολή παραγωγής"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Πελάτης στον οποίο θα αποδοθούν τα είδη αποθέματος"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "Η επιλεγμένη εταιρεία δεν είναι πελάτης"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Σημειώσεις απόδοσης αποθέματος"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Πρέπει να δοθεί λίστα ειδών αποθέματος"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Σημειώσεις συγχώνευσης αποθέματος"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Να επιτρέπονται διαφορετικοί προμηθευτές"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Να επιτρέπεται η συγχώνευση ειδών αποθέματος με διαφορετικά προϊόντα προμηθευτή"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Να επιτρέπεται διαφορετική κατάσταση"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Να επιτρέπεται η συγχώνευση ειδών αποθέματος με διαφορετικούς κωδικούς κατάστασης"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Πρέπει να δοθούν τουλάχιστον δύο είδη αποθέματος"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Καμία αλλαγή"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Τιμή πρωτεύοντος κλειδιού StockItem"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "Το είδος δεν βρίσκεται σε απόθεμα"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr "Το είδος βρίσκεται ήδη σε απόθεμα"
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr "Η ποσότητα δεν πρέπει να είναι αρνητική"
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Σημειώσεις συναλλαγής αποθέματος"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr "Συγχώνευση με υπάρχον απόθεμα"
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Σημειώσεις συναλλαγής αποθέματος"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr "Συγχώνευση επιστρεφόμενων ειδών με υπάρχοντα είδη αποθέματος, όπου είναι δυνατό"
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "Επόμενος σειριακός αριθμός"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "Προηγούμενος σειριακός αριθμός"
@@ -9919,7 +9943,7 @@ msgstr "Δικαιώματα"
msgid "Important dates"
msgstr "Σημαντικές ημερομηνίες"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Το διακριτικό έχει ανακληθεί"
@@ -9927,163 +9951,163 @@ msgstr "Το διακριτικό έχει ανακληθεί"
msgid "Token has expired"
msgstr "Το διακριτικό έχει λήξει"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "Διακριτικό API"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "Διακριτικά API"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Όνομα διακριτικού"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Προσαρμοσμένο όνομα διακριτικού"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Ημερομηνία λήξης διακριτικού"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Τελευταία δραστηριότητα"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Τελευταία φορά που χρησιμοποιήθηκε το διακριτικό"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Έχει ανακληθεί"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Σύνολο δικαιωμάτων"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Προβολή"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Δικαίωμα προβολής Προϊόντων"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Προσθήκη"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Δικαίωμα προσθήκης Προϊόντων"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Τροποποίηση"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Δικαίωμα επεξεργασίας Προϊόντων"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Διαγραφή"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Δικαίωμα διαγραφής Προϊόντων"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "Bot"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "Εσωτερικός"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Επισκέπτης"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Γλώσσα"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "Προτιμώμενη γλώσσα χρήστη"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "Θέμα"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "Ρυθμίσεις για το web UI σε μορφή JSON - μην τις επεξεργάζεστε χειροκίνητα!"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "Μικροεφαρμογές"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "Ρυθμίσεις για τα widgets του πίνακα ελέγχου σε μορφή JSON - μην τις επεξεργάζεστε χειροκίνητα!"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Προβαλλόμενο όνομα"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "Επιλεγμένο προβαλλόμενο όνομα χρήστη"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "Θέση"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "Κύριος επαγγελματικός τίτλος ή θέση"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "Μήνυμα κατάστασης χρήστη"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "Πληροφορίες τοποθεσίας χρήστη"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "Ο χρήστης χρησιμοποιεί ενεργά το σύστημα"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "Προτιμώμενα στοιχεία επικοινωνίας χρήστη"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "Τύπος χρήστη"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "Τι τύπος χρήστη είναι;"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "Οργανισμός"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "Κύριος οργανισμός/φορέας του χρήστη"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "Κύρια ομάδα"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "Κύρια ομάδα του χρήστη"
diff --git a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po
index 9087544289..b00403199c 100644
--- a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 23:58+0000\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,39 +18,39 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr ""
@@ -66,11 +66,11 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr ""
@@ -89,7 +89,7 @@ msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr ""
@@ -106,22 +106,22 @@ msgstr ""
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr ""
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -165,51 +165,51 @@ msgstr ""
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -221,117 +221,121 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr ""
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr ""
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr ""
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr ""
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -346,7 +350,7 @@ msgstr ""
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr ""
@@ -522,11 +526,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -538,7 +542,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr ""
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -547,23 +551,23 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -573,7 +577,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -584,9 +588,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -594,7 +598,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -602,11 +606,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -642,99 +646,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr ""
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr ""
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -774,9 +778,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -805,7 +809,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr ""
@@ -822,7 +826,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr ""
@@ -855,7 +859,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -884,8 +888,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr ""
@@ -901,7 +905,7 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -929,7 +933,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -963,9 +967,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -1000,7 +1004,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1050,7 +1054,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1058,8 +1062,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr ""
@@ -1083,7 +1087,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1140,7 +1144,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1273,7 +1277,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1386,8 +1390,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1417,24 +1421,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1528,31 +1532,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1572,8 +1576,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1646,8 +1650,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr ""
@@ -1655,8 +1659,8 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr ""
@@ -1678,8 +1682,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1687,7 +1691,7 @@ msgstr ""
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1757,7 +1761,7 @@ msgstr ""
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1827,7 +1831,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr ""
@@ -1945,7 +1949,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2173,7 +2177,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2205,8 +2209,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2263,7 +2267,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2280,7 +2284,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2385,7 +2389,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2431,7 +2435,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2525,7 +2529,7 @@ msgstr ""
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2670,8 +2674,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2915,8 +2919,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2932,7 +2936,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3145,7 +3149,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3274,538 +3278,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4129,49 +4141,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4200,12 +4212,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4246,7 +4258,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4298,7 +4310,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4391,7 +4403,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4409,7 +4421,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4438,10 +4450,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4449,7 +4461,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4486,7 +4498,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4534,7 +4546,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4723,7 +4735,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4839,7 +4851,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4943,7 +4955,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4967,118 +4979,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5086,14 +5098,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5136,11 +5148,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5152,7 +5164,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5185,487 +5197,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr ""
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5693,7 +5705,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5785,11 +5797,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5826,7 +5838,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6057,123 +6069,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6214,7 +6234,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6350,7 +6370,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6359,7 +6379,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6383,7 +6403,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6391,7 +6411,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6632,7 +6652,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6760,7 +6780,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6912,351 +6932,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7327,91 +7347,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7993,7 +8013,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8073,77 +8093,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8195,21 +8215,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8482,136 +8502,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8767,200 +8787,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8996,7 +9016,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9102,7 +9122,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9118,7 +9138,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9207,7 +9227,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9227,7 +9247,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9235,7 +9255,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9251,71 +9271,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9399,7 +9419,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9429,8 +9449,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9502,127 +9522,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9920,7 +9944,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9928,163 +9952,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po
index 652177f82f..6c2116cbd8 100644
--- a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "endpoint API no encontrado"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr "Se debe proporcionar una lista de elementos para la operación por lotes"
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Los artículos deben ser proporcionados como una lista"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Lista de artículos no válida"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Todos los filtros tienen que ser usados con verdadero"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Ningún artículo coincide con el criterio proporcionado"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Sin datos proporcionados"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Este campo debe ser único."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "El usuario no tiene permiso para ver este modelo"
@@ -65,11 +65,11 @@ msgstr "Confirmación de dirección de email"
msgid "You must type the same email each time."
msgstr "Debe escribir el mismo correo electrónico cada vez."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "La dirección de correo electrónico principal proporcionada no es válida."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "El dominio de correo electrónico proporcionado no está aprobado."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "No se pudo convertir {original} a {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
@@ -105,22 +105,22 @@ msgstr "Ingrese la fecha"
msgid "Invalid decimal value"
msgstr "Número decimal no válido"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Notas"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "El valor '{name}' no aparece en formato de patrón"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "El valor proporcionado no coincide con el patrón requerido: "
@@ -164,51 +164,51 @@ msgstr "Eliminar etiquetas HTML de este valor"
msgid "Data contains prohibited markdown content"
msgstr "Los datos contienen contenido de marcado prohibido"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr "URL no válida: falta el nombre de host"
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr "URL no válida: no se pudo resolver el nombre de host"
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr "La URL apunta a una dirección IP privada o reservada"
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr "Demasiadas redirecciones"
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Error de conexión"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "El servidor respondió con código de estado no válido"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Se ha producido una excepción"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "El servidor respondió con un valor de longitud de contenido inválido"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "El tamaño de la imagen es demasiado grande"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "La descarga de imagen excedió el tamaño máximo"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "El servidor remoto devolvió una respuesta vacía"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "La URL proporcionada no es un archivo de imagen válido"
@@ -220,117 +220,121 @@ msgstr "Iniciar sesión en la aplicación"
msgid "Email"
msgstr "Correo electrónico"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Debe habilitar la autenticación de doble factor antes de continuar."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Error al ejecutar la validación del plug-in"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Los metadatos deben ser un objeto diccionario de python"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Metadatos del complemento"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Campo de metadatos JSON, para uso por complementos externos"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Patrón con formato incorrecto"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Clave de formato especificado desconocida"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Falta la clave de formato necesaria"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "El campo de servidor no puede estar vacío"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "La referencia debe coincidir con la expresión regular {pattern}"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "El número de referencia es demasiado grande"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Selección no válida"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Nombre"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Descripción"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Descripción (opcional)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Ruta"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Los nombres duplicados no pueden existir bajo el mismo padre"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Notas de Markdown (opcional)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Datos de código de barras"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Datos de código de barras de terceros"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Hash del Código de barras"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Hash único de datos de código de barras"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Código de barras existente encontrado"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Error de servidor"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Se ha registrado un error por el servidor."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Debe ser un número válido"
msgid "Currency"
msgstr "Moneda"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Seleccionar moneda de las opciones disponibles"
@@ -521,11 +525,11 @@ msgstr "Chino (Simplificado)"
msgid "Chinese (Traditional)"
msgstr "Chino (Tradicional)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Actualización disponible"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Una actualización para InvenTree está disponible"
@@ -537,7 +541,7 @@ msgstr "Unidad física inválida"
msgid "Not a valid currency code"
msgstr "No es un código de moneda válido"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Estado del pedido"
@@ -546,23 +550,23 @@ msgstr "Estado del pedido"
msgid "Parent Build"
msgstr "Construcción o Armado Superior"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Incluye Variantes"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Incluye Variantes"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Incluye Variantes"
msgid "Part"
msgstr "Parte"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Categoría"
@@ -593,7 +597,7 @@ msgstr "Categoría"
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Asignado a mí"
@@ -601,11 +605,11 @@ msgstr "Asignado a mí"
msgid "Assigned To"
msgstr "Asignadas a"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Creado antes"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Creado despues"
@@ -641,99 +645,99 @@ msgstr "Completado antes"
msgid "Completed after"
msgstr "Completado después"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Fecha Mínima"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Fecha Máxima"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Excluir Árbol"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "La compilación debe cancelarse antes de poder ser eliminada"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Consumible"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Opcional"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Montaje"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Rastreado"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Comprobable"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Pedido pendiente"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Asignadas"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Agotado"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponible"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "En pedido"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Construir órden"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Ubicación"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Salida"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr "La fecha límite debe ser posterior a la fecha de inicio"
msgid "Build Order Reference"
msgstr "Número de orden de construcción o armado"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Referencia de orden de venta"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Ubicación de la fuente"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Ubicación de destino"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Código de estado de construcción"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Numero de lote"
@@ -883,8 +887,8 @@ msgstr "Fecha límite de finalización"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Fecha de finalización"
@@ -900,7 +904,7 @@ msgstr "Emitido por"
msgid "User who issued this build order"
msgstr "El usuario que emitió esta orden"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Prioridad de esta orden de construcción"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Código del proyecto"
@@ -962,9 +966,9 @@ msgstr "La salida de la construcción no coincide con el orden de construcción"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "La cantidad debe ser mayor que cero"
@@ -999,7 +1003,7 @@ msgstr "Ensamblar equipo"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "La cantidad debe ser 1 para el stock serializado"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Artículo de stock sobreasignado"
@@ -1057,8 +1061,8 @@ msgstr "Artículo de stock sobreasignado"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Artículo de stock"
@@ -1082,7 +1086,7 @@ msgstr "Artículo de stock de destino"
msgid "Build Level"
msgstr "Nivel de construcción"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Nombre de parte"
@@ -1139,7 +1143,7 @@ msgstr "Autoasignar Números de Serie"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Asignar automáticamente los artículos requeridos con números de serie coincidentes"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Los siguientes números seriales ya existen o son inválidos"
@@ -1272,7 +1276,7 @@ msgstr "Crear partida"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part debe apuntar a la misma parte que la orden de construcción"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "El artículo debe estar en stock"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Parte del proveedor"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Permitir variantes"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Item de Lista de Materiales"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "En producción"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Stock externo"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Stock Disponible"
@@ -1527,31 +1531,31 @@ msgstr "Orden de construcción atrasada"
msgid "Build order {bo} is now overdue"
msgstr "El pedido de construcción {bo} está atrasado"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "¿Es enlace?"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "¿Es archivo?"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "El usuario no tiene permiso para eliminar estos adjuntos"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "El usuario no tiene permiso para eliminar este adjunto"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Lista de selección bloqueada"
@@ -1571,8 +1575,8 @@ msgstr "No se han proporcionado códigos de divisa válidos"
msgid "No plugin"
msgstr "Sin plugin"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "Cadena de clave debe ser única"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Usuario"
@@ -1654,8 +1658,8 @@ msgstr "Usuario"
msgid "Price break quantity"
msgstr "Cantidad de salto de precio"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Precio"
@@ -1677,8 +1681,8 @@ msgstr "Nombre para este webhook"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Activo"
@@ -1686,7 +1690,7 @@ msgstr "Activo"
msgid "Is this webhook active"
msgstr "Está activo este webhook"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token"
@@ -1756,7 +1760,7 @@ msgstr "Título"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definición"
msgid "Unit definition"
msgstr "Definición de unidad"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Archivo adjunto"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Valor"
@@ -2172,7 +2176,7 @@ msgstr "Opciones válidas para este parámetro (separados por comas)"
msgid "Selection list for this parameter"
msgstr "Lista de selección para este parámetro"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Habilitado"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Plantilla"
@@ -2262,7 +2266,7 @@ msgstr "Fecha y hora del escaneo de código de barras"
msgid "URL endpoint which processed the barcode"
msgstr "Dispositivo URL que procesó el código de barras"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Contexto"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Respuesta de datos del escaneo de código de barras"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Resultado"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Clave"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} cancelado"
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Artículos Recibidos"
@@ -2524,7 +2528,7 @@ msgstr "Nombre de Archivo"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr "Con qué frecuencia actualizar los tipos de cambio (establecer a cero pa
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "días"
@@ -2914,8 +2918,8 @@ msgstr "Las partes son plantillas por defecto"
msgid "Parts can be assembled from other components by default"
msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Componente"
@@ -2931,7 +2935,7 @@ msgstr "Comprable"
msgid "Parts are purchaseable by default"
msgstr "Las partes son comprables por defecto"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Vendible"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Registrar errores ocurridos al generar reportes"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Tamaño de página"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Permitir que artículos del inventario sin existencias puedan ser transferidos entre ubicaciones de inventario"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Patrón de Referencia de Ordenes de Armado"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la Orden de Ensamblado"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Requerir Dueño Responsable"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Se debe asignar un dueño responsable a cada orden"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Requerir Parte Activa"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Impedir la creación de órdenes de fabricación para partes inactivas"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Requerir Parte Bloqueada"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Impedir la creación de órdenes de fabricación para partes bloqueadas"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Impedir la creación de órdenes de fabricación a menos que se haya validado la lista de materiales"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Prevenir la finalización de la orden de construcción hasta que todas las órdenes hijas estén cerradas"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Bloquear hasta que los Tests pasen"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Evitar que las construcciones sean completadas hasta que todas las pruebas requeridas pasen"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Habilitar órdenes de devolución"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Habilitar la funcionalidad de orden de devolución en la interfaz de usuario"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Patrón de referencia de orden de devolución"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de devolución de la orden"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Editar ordenes de devolución completadas"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Permitir la edición de ordenes de devolución después de que hayan sido completados"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Patrón de Referencia de Ordenes de Venta"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la orden de venta"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Envío Predeterminado de Ordenes de Venta"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Habilitar la creación de envío predeterminado con ordenes de entrega"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Editar Ordenes de Venta Completados"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Permitir la edición de ordenes de venta después de que hayan sido enviados o completados"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Marcar pedidos enviados como completados"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Los pedidos marcados como enviados se completarán automáticamente, evitando el estado de \"envío\""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Patrón de Referencia de Orden de Compra"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la Orden de Compra"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Editar Ordenes de Compra Completados"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Permitir la edición de órdenes de venta después de que hayan sido enviados o completados"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Convertir moneda"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Autocompletar Ordenes de compra"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Marcar automáticamente las órdenes de compra como completas cuando se reciben todos los artículos de línea"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Habilitar función de contraseña olvidada"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Activar la función olvido de contraseña en las páginas de inicio de sesión"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Habilitar registro"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Activar auto-registro para usuarios en las páginas de inicio de sesión"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Habilitar SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Habilitar SSO en las páginas de inicio de sesión"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Habilitar registro SSO"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Activar autoregistro a través de SSO para usuarios en las páginas de inicio de sesión"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "Habilitar sincronización de grupo SSO"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Habilitar la sincronización de grupos de Inventree con grupos proporcionados por el IdP"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "Clave de grupo SSO"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "El nombre del atributo reclamado por el grupo proporcionado por el IdP"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "Mapa del grupo SSO"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "Un mapeo de grupos SSO a grupos de Inventree locales. Si el grupo local no existe, se creará."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Eliminar grupos fuera de SSO"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Email requerido"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Requiere usuario para suministrar correo al registrarse"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Auto-rellenar usuarios SSO"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Rellenar automáticamente los datos de usuario de la cuenta SSO"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Correo dos veces"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Al registrarse pregunte dos veces a los usuarios por su correo"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Contraseña dos veces"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Al registrarse, preguntar dos veces a los usuarios por su contraseña"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Dominios permitidos"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Restringir el registro a ciertos dominios (separados por comas, comenzando por @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Grupo al registrarse"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Grupo al que se asignan nuevos usuarios al registrarse. Si la sincronización de grupo SSO está activada, este grupo sólo se establece si no se puede asignar ningún grupo desde el IdP."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Forzar MFA"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Los usuarios deben utilizar seguridad multifactor."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Comprobar complementos al iniciar"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Comprobar que todos los complementos están instalados en el arranque - habilitar en entornos de contenedores"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Revisar actualizaciones del plugin"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Habilitar comprobaciones periódicas para actualizaciones de plugins instalados"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Habilitar integración de URL"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Habilitar plugins para añadir rutas de URL"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Habilitar integración de navegación"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Habilitar plugins para integrar en la navegación"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Habilitar integración de la aplicación"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Habilitar plugins para añadir aplicaciones"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Habilitar integración de programación"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Habilitar plugins para ejecutar tareas programadas"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Habilitar integración de eventos"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Habilitar plugins para responder a eventos internos"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Habilitar integración de interfaz"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Habilitar complementos para integrar en la interfaz de usuario"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Habilitar códigos de proyecto para rastrear proyectos"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Excluir Ubicaciones Externas"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Periodo de inventario automático"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Mostrar nombres completos de los usuarios"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Mostrar nombres completos de usuarios en lugar de nombres de usuario"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Habilitar datos de estación de prueba"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Habilitar la recolección de datos de estaciones de prueba para resultados de prueba"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Un dominio vacío no está permitido."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Nombre de dominio inválido: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Fabricante"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Empresa"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Correo electrónico de contacto"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Contacto"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Dirección"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Enlace a información de dirección (externa)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Parte del fabricante"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Seleccionar fabricante"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte base"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Proveedor"
@@ -4448,7 +4460,7 @@ msgstr "Proveedor"
msgid "Select supplier"
msgstr "Seleccionar proveedor"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Unidad de mantenimiento de stock de proveedores"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Paquetes"
@@ -4533,7 +4545,7 @@ msgstr "Moneda predeterminada utilizada para este proveedor"
msgid "Company Name"
msgstr "Nombre de la empresa"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "En Stock"
@@ -4722,7 +4734,7 @@ msgstr "Datos de la fila original"
msgid "Errors"
msgstr "Errores"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Válido"
@@ -4838,7 +4850,7 @@ msgstr "Número de copias a imprimir para cada etiqueta"
msgid "Connected"
msgstr "Conectado"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Desconocido"
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Grupo"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Referencia del pedido"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Destacado"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Tiene Código de Proyecto"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Creado por"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Creado antes de"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Creado después de"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "Tiene fecha inicial"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "Fecha de inicio anterior"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "Fecha de inicio después"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "Tiene fecha límite"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Fecha objetivo antes"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Fecha objetivo después"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Tiene Precio"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Completado antes de"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Completado después de"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Orden"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Orden completada"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Componente interno"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Orden pendiente"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Completados"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Tiene envío"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Orden de compra"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Orden de compra"
msgid "Sales Order"
msgstr "Orden de Venta"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Orden de devolución"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr "Descripción del pedido (opcional)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Seleccione el código del proyecto para este pedido"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Enlace a Url externa"
@@ -5151,7 +5163,7 @@ msgstr "Fecha de inicio"
msgid "Scheduled start date for this order"
msgstr "Fecha de inicio programada para este pedido"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Fecha objetivo"
@@ -5184,487 +5196,487 @@ msgstr "Punto de contacto para este pedido"
msgid "Company address for this order"
msgstr "Dirección de la empresa para este pedido"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Referencia del pedido"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Estado"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Estado de la orden de compra"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Empresa de la cual se están encargando los artículos"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Referencia del proveedor"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Código de referencia de pedido del proveedor"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "recibido por"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "La fecha de pedido fue completada"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Destinación"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Destino para los artículos recibidos"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "El proveedor de la parte debe coincidir con el proveedor de PO"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "La partida no coincide con la orden de compra"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "La cantidad debe ser un número positivo"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Cliente"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Empresa a la que se venden los artículos"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Estado de la orden de venta"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Referencia del cliente "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Código de referencia de pedido del cliente"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Fecha de envío"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "enviado por"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "La orden ya fue completada"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "La orden ya fue cancelada"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Sólo una orden abierta puede ser marcada como completa"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "El pedido no se puede completar porque hay envíos incompletos"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "El pedido no se puede completar ya que hay asignaciones incompletas"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "El pedido no se puede completar porque hay partidas incompletas"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "Este pedido está bloqueado y no puede ser modificado"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Cantidad del artículo"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Referencia de partida"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Notas de partida"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Fecha objetivo para esta partida (dejar en blanco para usar la fecha de destino de la orden)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Descripción de partida (opcional)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Contexto adicional para esta línea"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Precio unitario"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "La parte del proveedor debe coincidir con el proveedor"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Parte del proveedor"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Recibido"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Número de artículos recibidos"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Precio de Compra"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Precio de compra unitario"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Sólo las partes vendibles pueden ser asignadas a un pedido de venta"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Precio de Venta"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Precio de venta unitario"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Enviado"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Cantidad enviada"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Fecha del envío"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Fecha de entrega"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Fecha de entrega del envío"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Revisado por"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Usuario que revisó este envío"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Envío"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Número de envío"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Número de Seguimiento"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Información de seguimiento del envío"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Número de factura"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Número de referencia para la factura asociada"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "El envío ya ha sido enviado"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "El envío no tiene artículos de stock asignados"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "El artículo de stock no ha sido asignado"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "No se puede asignar el artículo de stock a una línea con una parte diferente"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "No se puede asignar stock a una línea sin una parte"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La cantidad de asignación no puede exceder la cantidad de stock"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Cantidad asignada debe ser mayor que cero"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "La cantidad debe ser 1 para el stock serializado"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "La orden de venta no coincide con el envío"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "El envío no coincide con el pedido de venta"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Línea"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Referencia del envío del pedido de venta"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Ítem"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Seleccionar artículo de stock para asignar"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Especificar la cantidad de asignación de stock"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Referencia de la orden de devolución"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Empresa de la cual se están devolviendo los artículos"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Estado de la orden de devolución"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Seleccionar el artículo a devolver del cliente"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Fecha de recepción"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Resultado"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Salida para esta partida"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Costo asociado con la devolución o reparación para esta partida"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr "Copiar líneas adicionales"
msgid "Copy extra line items from the original order"
msgstr "Copiar elementos extra de la línea del pedido original"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Copiar Parámetros"
@@ -5784,11 +5796,11 @@ msgstr "Combinar artículos"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Número de parte interna"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Introduzca el código de lote para los artículos de almacén entrantes"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Fecha de Expiración"
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Favoritos"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Profundidad"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Filtrar por profundidad de categoría"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Nivel superior"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Filtrar por categorías de nivel superior"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "En cascada"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Tiene resultados"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr "Palabras clave por defecto para partes en esta categoría"
msgid "Icon"
msgstr "Icono"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Icono (opcional)"
@@ -6349,7 +6369,7 @@ msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqued
msgid "Part category"
msgstr "Categoría de parte"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6358,7 +6378,7 @@ msgstr "IPN"
msgid "Part revision or version number"
msgstr "Revisión de parte o número de versión"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Revisión"
@@ -6382,7 +6402,7 @@ msgstr "Expiración por defecto"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Stock mínimo"
@@ -6390,7 +6410,7 @@ msgstr "Stock mínimo"
msgid "Minimum allowed stock level"
msgstr "Nivel mínimo de stock permitido"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Fecha"
@@ -6759,7 +6779,7 @@ msgstr "Sub parte"
msgid "Select part to be used in BOM"
msgstr "Seleccionar parte a utilizar en BOM"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr "Categoría principal de parte"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Subcategorías"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Moneda de compra de ítem de stock"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Parte original"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Seleccione la parte original a duplicar"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Copiar Imagen"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Copiar imagen desde la parte original"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Copiar BOM"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Copiar la factura de materiales de la parte original"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Copiar datos del parámetro de la parte original"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Copiar Notas"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Cantidad Inicial de Stock"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Seleccione proveedor (o déjelo en blanco para saltar)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Seleccionar fabricante (o dejar en blanco para saltar)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Número de parte del fabricante"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "La empresa seleccionada no es un proveedor válido"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "La empresa seleccionada no es un fabricante válido"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Nombre de categoría"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "En construcción"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Elementos de stock"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Inventario Total"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Duplicar Parte"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Stock Inicial"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Crear Parte con cantidad inicial de stock"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Información del proveedor"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Añadir información inicial del proveedor para esta parte"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Copiar Parámetros de Categoría"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Imagen Existente"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "El archivo de imagen no existe"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Validación de Lista de Materiales"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Puede construir"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Precio mínimo"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Anular el valor calculado para precio mínimo"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Precio mínimo de moneda"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Precio máximo"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Precio máximo de moneda"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Actualizar"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "El precio mínimo no debe ser mayor que el precio máximo"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "El precio máximo no debe ser inferior al precio mínimo"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Seleccionar parte de la que copiar BOM"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Eliminar Datos Existentes"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Eliminar artículos BOM existentes antes de copiar"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Incluye Heredado"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Incluye artículos BOM que son heredados de partes con plantillas"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Omitir filas no válidas"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Activar esta opción para omitir filas inválidas"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Copiar partes sustitutas"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr "No se especificó ninguna acción"
msgid "No matching action found"
msgstr "No se encontró ninguna acción coincidente"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "No se encontró ninguna coincidencia para los datos del código de barras"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Coincidencia encontrada para datos de códigos de barras"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "El código de barras coincide con artículo existente"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "No se ha encontrado ningún complemento para datos de código de barras"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Ningún pedido de venta proporcionado"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "El complemento no está instalado"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "Instalación del complemento no encontrada"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr "Complemento"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "No se encontró autor"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "El complemento '{p}' no es compatible con la versión actual de InvenTree {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "El complemento requiere al menos la versión {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "El complemento requiere como máximo la versión {v}"
@@ -8481,136 +8501,136 @@ msgstr "Legal"
msgid "Letter"
msgstr "Carta"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Nombre de la plantilla"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Adjuntar al modelo al imprimir"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Guardar la salida del informe como un archivo adjunto contra la instancia del modelo enlazado al imprimir"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Patrón de Nombre de archivo"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtros"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Tamaño de página para reportes PDF"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Ancho [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Ancho de la etiqueta, especificado en mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Altura [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Altura de la etiqueta, especificada en mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Fragmento"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Archivo fragmento de informe"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Descripción de archivo de fragmento"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Activo"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Reportar archivo de activos"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Descripción del archivo de activos"
@@ -8766,200 +8786,200 @@ msgstr "Sin resultados"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Ubicación principal"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Filtrar por ubicación principal"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Nombre de pieza (insensible a mayúsculas y minúsculas)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "El nombre de la pieza (insensible a mayúsculas y minúsculas)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Nombre de la pieza (expresión regular)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "Pieza IPN (insensible a mayúsculas y minúsculas)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "Pieza IPN (insensible a mayúsculas y minúsculas)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "Pieza IPN (expresión regular)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Stock mínimo"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Stock máximo"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Código de estado"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Ubicación externa"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "Instalado en otro artículo de existencias"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Árbol de piezas"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Actualizado antes"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Actualizado después"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Inventario antes"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Inventario después"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Desactualizado"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Cantidad requerida"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Debe suministrarse una parte válida"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Seleccionar Propietario"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Externo"
@@ -9101,7 +9121,7 @@ msgstr "Seleccione una parte del proveedor correspondiente para este artículo d
msgid "Where is this stock item located?"
msgstr "¿Dónde se encuentra este artículo de stock?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Empaquetar este artículo de stock se almacena en"
@@ -9117,7 +9137,7 @@ msgstr "¿Está este artículo instalado en otro artículo?"
msgid "Serial number for this item"
msgstr "Número de serie para este artículo"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Código de lote para este artículo de stock"
@@ -9206,7 +9226,7 @@ msgstr "La cantidad no coincide con los números de serie"
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr "Artículo de stock contiene otros artículos"
msgid "Stock item has been assigned to a customer"
msgstr "Artículo de stock ha sido asignado a un cliente"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "El artículo de stock está en producción"
@@ -9234,7 +9254,7 @@ msgstr "El artículo de stock está en producción"
msgid "Serialized stock cannot be merged"
msgstr "Stock serializado no puede ser combinado"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Artículos de Stock Duplicados"
@@ -9250,71 +9270,71 @@ msgstr "Los artículos de stock deben referirse a la misma parte del proveedor"
msgid "Stock status codes must match"
msgstr "Los códigos de estado del stock deben coincidir"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stock no se puede mover porque no está en stock"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Notas de entrada"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Debe proporcionarse un valor para esta prueba"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "El archivo adjunto debe ser subido para esta prueba"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Resultado de la prueba"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Valor de salida de prueba"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Adjunto de resultados de prueba"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Notas de prueba"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Finalizó"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr "Introduzca números de serie para nuevos artículos"
msgid "Supplier Part Number"
msgstr "Número de pieza del proveedor"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Expirado"
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "La cantidad no debe exceder la cantidad disponible de stock ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Ubicación de stock de destino"
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Sub-ubicación"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "La parte debe ser vendible"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "El artículo está asignado a una orden de venta"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "El artículo está asignado a una orden de creación"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Cliente para asignar artículos de stock"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "La empresa seleccionada no es un cliente"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Notas de asignación de stock"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Debe proporcionarse una lista de artículos de stock"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Notas de fusión de stock"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Permitir proveedores no coincidentes"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Permitir fusionar artículos de stock con diferentes partes de proveedor"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Permitir estado no coincidente"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Permitir fusionar artículos de stock con diferentes códigos de estado"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Debe proporcionar al menos dos artículos de stock"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Sin cambios"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Valor de clave primaria de Stock"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "No hay existencias del artículo"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Notas de transacción de stock"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Notas de transacción de stock"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr "Permisos"
msgid "Important dates"
msgstr "Fechas importantes"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Token revocado"
@@ -9927,163 +9951,163 @@ msgstr "Token revocado"
msgid "Token has expired"
msgstr "Token expirado"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "Token del API"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "Tokens del API"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Nombre del token"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Nombre personalizado del token"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Fecha de expiración del token"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Última conexión"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Última vez que se usó el token"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Revocado"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Permiso establecido"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Vista"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Permiso para ver artículos"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Añadir"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Permiso para añadir artículos"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Cambiar"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Permisos para editar artículos"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Eliminar"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Permiso para eliminar artículos"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po
index 27abfd0d65..79387a5e36 100644
--- a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Language: es_MX\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "endpoint API no encontrado"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Los artículos deben ser provistos como una lista"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Lista de artículos inválida"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Todos los filtros sólo deben ser usados como verdaderos"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Ningún artículo coincide con el criterio proporcionado"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "El usuario no tiene permiso para ver este modelo"
@@ -65,11 +65,11 @@ msgstr "Confirmación de dirección de email"
msgid "You must type the same email each time."
msgstr "Debe escribir el mismo correo electrónico cada vez."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "La dirección de correo electrónico principal proporcionada no es válida."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "El dominio de correo electrónico proporcionado no está aprobado."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "No se pudo convertir {original} a {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
@@ -105,22 +105,22 @@ msgstr "Ingrese la fecha"
msgid "Invalid decimal value"
msgstr "Número decimal inválido"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Notas"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "El valor '{name}' no aparece en formato de patrón"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "El valor proporcionado no coincide con el patrón requerido: "
@@ -164,51 +164,51 @@ msgstr "Eliminar etiquetas HTML de este valor"
msgid "Data contains prohibited markdown content"
msgstr "Los datos contienen contenido de markdown prohibido"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Error de conexión"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "El servidor respondió con código de estado no válido"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Se ha producido una excepción"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "El servidor respondió con un valor de longitud de contenido inválido"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "El tamaño de la imagen es demasiado grande"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "La descarga de imagen excedió el tamaño máximo"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "El servidor remoto devolvió una respuesta vacía"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "La URL proporcionada no es un archivo de imagen válido"
@@ -220,117 +220,121 @@ msgstr "Iniciar sesión en la aplicación"
msgid "Email"
msgstr "Correo electrónico"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Debe habilitar la autenticación de doble factor antes de hacer cualquier otra cosa."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Error al ejecutar la validación del plug-in"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Los metadatos deben ser un objeto diccionario de python"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Metadatos del complemento"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Campo de metadatos JSON, para uso por complementos externos"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Patrón con formato incorrecto"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Clave de formato especificado desconocida"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Falta la clave de formato necesaria"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "El campo de servidor no puede estar vacío"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "La referencia debe coincidir con la expresión regular {pattern}"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "El número de referencia es demasiado grande"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Selección no válida"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Nombre"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Descripción"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Descripción (opcional)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Ruta"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Los nombres duplicados no pueden existir bajo el mismo padre"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Notas de Markdown (opcional)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Datos de código de barras"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Datos de código de barras de terceros"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Hash del Código de barras"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Hash único de datos de código de barras"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Código de barras existente encontrado"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Error de servidor"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Se ha registrado un error por el servidor."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Debe ser un número válido"
msgid "Currency"
msgstr "Moneda"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Seleccionar moneda de las opciones disponibles"
@@ -521,11 +525,11 @@ msgstr "Chino (Simplificado)"
msgid "Chinese (Traditional)"
msgstr "Chino (Tradicional)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr "Unidad física inválida"
msgid "Not a valid currency code"
msgstr "No es un código de moneda válido"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Estado del pedido"
@@ -546,23 +550,23 @@ msgstr "Estado del pedido"
msgid "Parent Build"
msgstr "Construcción o Armado Superior"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Incluye Variantes"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Incluye Variantes"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Incluye Variantes"
msgid "Part"
msgstr "Parte"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Categoría"
@@ -593,7 +597,7 @@ msgstr "Categoría"
msgid "Ancestor Build"
msgstr "Construir antepasado"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Asignado a mí"
@@ -601,11 +605,11 @@ msgstr "Asignado a mí"
msgid "Assigned To"
msgstr "Asignadas a"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Creado antes de"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Creado después de"
@@ -641,99 +645,99 @@ msgstr "Completado antes de"
msgid "Completed after"
msgstr "Completado después de"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "La compilación debe cancelarse antes de poder ser eliminada"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Consumible"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Opcional"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Montaje"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Rastreado"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Comprobable"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Pedido pendiente"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Asignadas"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponible"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "En pedido"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Construir órden"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Ubicación"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Número de orden de construcción o armado"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Referencia de orden de venta"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Ubicación de la fuente"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Ubicación de destino"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Código de estado de construcción"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Numero de lote"
@@ -883,8 +887,8 @@ msgstr "Fecha límite de finalización"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Fecha de finalización"
@@ -900,7 +904,7 @@ msgstr "Emitido por"
msgid "User who issued this build order"
msgstr "El usuario que emitió esta orden"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Prioridad de esta orden de construcción"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Código del proyecto"
@@ -962,9 +966,9 @@ msgstr "La salida de la construcción no coincide con el orden de construcción"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "La cantidad debe ser mayor que cero"
@@ -999,7 +1003,7 @@ msgstr "Ensamblar equipo"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "La cantidad debe ser 1 para el stock serializado"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Artículo de stock sobreasignado"
@@ -1057,8 +1061,8 @@ msgstr "Artículo de stock sobreasignado"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Artículo de stock"
@@ -1082,7 +1086,7 @@ msgstr "Artículo de stock de destino"
msgid "Build Level"
msgstr "Nivel de construcción"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Nombre de parte"
@@ -1139,7 +1143,7 @@ msgstr "Autoasignar Números de Serie"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Asignar automáticamente los artículos requeridos con números de serie coincidentes"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Los siguientes números seriales ya existen o son inválidos"
@@ -1272,7 +1276,7 @@ msgstr "Crear partida"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part debe apuntar a la misma parte que la orden de construcción"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "El artículo debe estar en stock"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Parte del proveedor"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Permitir variantes"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Item de Lista de Materiales"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "En producción"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Stock externo"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Stock Disponible"
@@ -1527,31 +1531,31 @@ msgstr "Orden de construcción atrasada"
msgid "Build order {bo} is now overdue"
msgstr "El pedido de construcción {bo} está atrasado"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "¿Es enlace?"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "¿Es archivo?"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "El usuario no tiene permiso para eliminar estos adjuntos"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "El usuario no tiene permiso para eliminar este adjunto"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Lista de selección bloqueada"
@@ -1571,8 +1575,8 @@ msgstr "No se han proporcionado códigos de divisa válidos"
msgid "No plugin"
msgstr "Sin plugin"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "Cadena de clave debe ser única"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Usuario"
@@ -1654,8 +1658,8 @@ msgstr "Usuario"
msgid "Price break quantity"
msgstr "Cantidad de salto de precio"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Precio"
@@ -1677,8 +1681,8 @@ msgstr "Nombre para este webhook"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Activo"
@@ -1686,7 +1690,7 @@ msgstr "Activo"
msgid "Is this webhook active"
msgstr "Está activo este webhook"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token"
@@ -1756,7 +1760,7 @@ msgstr "Título"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definición"
msgid "Unit definition"
msgstr "Definición de unidad"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Archivo adjunto"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "Clave lógica del estado que es igual a este estado personalizado en la lógica de negocios"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Valor"
@@ -2172,7 +2176,7 @@ msgstr "Opciones válidas para este parámetro (separados por comas)"
msgid "Selection list for this parameter"
msgstr "Lista de selección para este parámetro"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Habilitado"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Plantilla"
@@ -2262,7 +2266,7 @@ msgstr "Fecha y hora del escaneo de código de barras"
msgid "URL endpoint which processed the barcode"
msgstr "Dispositivo URL que procesó el código de barras"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Contexto"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Respuesta de datos del escaneo de código de barras"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Resultado"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Clave"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} cancelado"
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Artículos Recibidos"
@@ -2524,7 +2528,7 @@ msgstr "Nombre de Archivo"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr "Con qué frecuencia actualizar los tipos de cambio (establecer a cero pa
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "días"
@@ -2914,8 +2918,8 @@ msgstr "Las partes son plantillas por defecto"
msgid "Parts can be assembled from other components by default"
msgstr "Las partes pueden ser ensambladas desde otros componentes por defecto"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Componente"
@@ -2931,7 +2935,7 @@ msgstr "Comprable"
msgid "Parts are purchaseable by default"
msgstr "Las partes son comprables por defecto"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Vendible"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Registrar errores ocurridos al generar reportes"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Tamaño de página"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Permitir que artículos del inventario sin existencias puedan ser transferidos entre ubicaciones de inventario"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Patrón de Referencia de Ordenes de Armado"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la Orden de Ensamblado"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Requerir Dueño Responsable"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Se debe asignar un dueño responsable a cada orden"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Requerir Parte Activa"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Impedir la creación de órdenes de fabricación para partes inactivas"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Requerir Parte Bloqueada"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Impedir la creación de órdenes de fabricación para partes bloqueadas"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Impedir la creación de órdenes de fabricación a menos que se haya validado la lista de materiales"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Prevenir la finalización de la orden de construcción hasta que todas las órdenes hijas estén cerradas"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Bloquear hasta que los Tests pasen"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Evitar que las construcciones sean completadas hasta que todas las pruebas requeridas pasen"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Habilitar órdenes de devolución"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Habilitar la funcionalidad de orden de devolución en la interfaz de usuario"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Patrón de referencia de orden de devolución"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de devolución de la orden"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Editar ordenes de devolución completadas"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Permitir la edición de ordenes de devolución después de que hayan sido completados"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Patrón de Referencia de Ordenes de Venta"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la orden de venta"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Envío Predeterminado de Ordenes de Venta"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Habilitar la creación de envío predeterminado con ordenes de entrega"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Editar Ordenes de Venta Completados"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Permitir la edición de ordenes de venta después de que hayan sido enviados o completados"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Marcar pedidos enviados como completados"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Los pedidos marcados como enviados se completarán automáticamente, evitando el estado de \"envío\""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Patrón de Referencia de Orden de Compra"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Patrón requerido para generar el campo de referencia de la Orden de Compra"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Editar Ordenes de Compra Completados"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Permitir la edición de órdenes de venta después de que hayan sido enviados o completados"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Autocompletar Ordenes de compra"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Marcar automáticamente las órdenes de compra como completas cuando se reciben todos los artículos de línea"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Habilitar función de contraseña olvidada"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Activar la función olvido de contraseña en las páginas de inicio de sesión"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Habilitar registro"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Activar auto-registro para usuarios en las páginas de inicio de sesión"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Habilitar SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Habilitar SSO en las páginas de inicio de sesión"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Habilitar registro SSO"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Activar autoregistro a través de SSO para usuarios en las páginas de inicio de sesión"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "Habilitar sincronización de grupo SSO"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Habilitar la sincronización de grupos de Inventree con grupos proporcionados por el IdP"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "Clave de grupo SSO"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "El nombre del atributo reclamado por el grupo proporcionado por el IdP"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "Mapa del grupo SSO"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "Un mapeo de grupos SSO a grupos de Inventree locales. Si el grupo local no existe, se creará."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Eliminar grupos fuera de SSO"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Email requerido"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Requiere usuario para suministrar correo al registrarse"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Auto-rellenar usuarios SSO"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Rellenar automáticamente los datos de usuario de la cuenta SSO"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Correo dos veces"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Al registrarse pregunte dos veces a los usuarios por su correo"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Contraseña dos veces"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Al registrarse, preguntar dos veces a los usuarios por su contraseña"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Dominios permitidos"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Restringir el registro a ciertos dominios (separados por comas, comenzando por @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Grupo al registrarse"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Grupo al que se asignan nuevos usuarios al registrarse. Si la sincronización de grupo SSO está activada, este grupo sólo se establece si no se puede asignar ningún grupo desde el IdP."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Forzar MFA"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Los usuarios deben utilizar seguridad multifactor."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Comprobar complementos al iniciar"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Comprobar que todos los complementos están instalados en el arranque - habilitar en entornos de contenedores"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Revisar actualizaciones del plugin"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Habilitar comprobaciones periódicas para actualizaciones de plugins instalados"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Habilitar integración de URL"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Habilitar plugins para añadir rutas de URL"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Habilitar integración de navegación"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Habilitar plugins para integrar en la navegación"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Habilitar integración de la aplicación"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Habilitar plugins para añadir aplicaciones"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Habilitar integración de programación"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Habilitar plugins para ejecutar tareas programadas"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Habilitar integración de eventos"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Habilitar plugins para responder a eventos internos"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Habilitar integración de interfaz"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Habilitar complementos para integrar en la interfaz de usuario"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Excluir Ubicaciones Externas"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Periodo de inventario automático"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Mostrar nombres completos de los usuarios"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Mostrar nombres completos de usuarios en lugar de nombres de usuario"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Habilitar datos de estación de prueba"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Habilitar la recolección de datos de estaciones de prueba para resultados de prueba"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Un dominio vacío no está permitido."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Nombre de dominio inválido: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Fabricante"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Empresa"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Correo electrónico de contacto"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Contacto"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Dirección"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Enlace a información de dirección (externa)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Parte del fabricante"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Seleccionar fabricante"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "La parte vinculada del fabricante debe hacer referencia a la misma parte base"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Proveedor"
@@ -4448,7 +4460,7 @@ msgstr "Proveedor"
msgid "Select supplier"
msgstr "Seleccionar proveedor"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Unidad de mantenimiento de stock de proveedores"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Paquetes"
@@ -4533,7 +4545,7 @@ msgstr "Moneda predeterminada utilizada para este proveedor"
msgid "Company Name"
msgstr "Nombre de la empresa"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "En Stock"
@@ -4722,7 +4734,7 @@ msgstr "Datos de la fila original"
msgid "Errors"
msgstr "Errores"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Válido"
@@ -4838,7 +4850,7 @@ msgstr "Número de copias a imprimir para cada etiqueta"
msgid "Connected"
msgstr "Conectado"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Desconocido"
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Grupo"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Referencia del pedido"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Destacado"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Tiene Código de Proyecto"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Creado por"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Creado antes de"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Creado después de"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Fecha objetivo antes de"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Fecha objetivo después de"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Tiene Precio"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Completado antes de"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Completado después de"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Orden"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Orden completada"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Componente interno"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Orden pendiente"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Completados"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Tiene envío"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Orden de compra"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Orden de compra"
msgid "Sales Order"
msgstr "Orden de Venta"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Orden de devolución"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr "Descripción del pedido (opcional)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Seleccione el código del proyecto para este pedido"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Enlace a Url externa"
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Fecha objetivo"
@@ -5184,487 +5196,487 @@ msgstr "Punto de contacto para este pedido"
msgid "Company address for this order"
msgstr "Dirección de la empresa para este pedido"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Referencia del pedido"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Estado"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Estado de la orden de compra"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Empresa de la cual se están encargando los artículos"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Referencia del proveedor"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Código de referencia de pedido del proveedor"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "recibido por"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "La fecha de pedido fue completada"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Destinación"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Destino para los artículos recibidos"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "El proveedor de la parte debe coincidir con el proveedor de PO"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "La partida no coincide con la orden de compra"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "La cantidad debe ser un número positivo"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Cliente"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Empresa a la que se venden los artículos"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Estado de la orden de venta"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Referencia del cliente "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Código de referencia de pedido del cliente"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Fecha de envío"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "enviado por"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "La orden ya fue completada"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "La orden ya fue cancelada"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Sólo una orden abierta puede ser marcada como completa"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "El pedido no se puede completar porque hay envíos incompletos"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "El pedido no se puede completar ya que hay asignaciones incompletas"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "El pedido no se puede completar porque hay partidas incompletas"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Cantidad del artículo"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Referencia de partida"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Notas de partida"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Fecha objetivo para esta partida (dejar en blanco para usar la fecha de destino de la orden)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Descripción de partida (opcional)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Contexto adicional para esta línea"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Precio unitario"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "La parte del proveedor debe coincidir con el proveedor"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Parte del proveedor"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Recibido"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Número de artículos recibidos"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Precio de Compra"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Precio de compra unitario"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Sólo las partes vendibles pueden ser asignadas a un pedido de venta"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Precio de Venta"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Precio de venta unitario"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Enviado"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Cantidad enviada"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Fecha del envío"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Fecha de entrega"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Fecha de entrega del envío"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Revisado por"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Usuario que revisó este envío"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Envío"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Número de envío"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Número de Seguimiento"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Información de seguimiento del envío"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Número de factura"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Número de referencia para la factura asociada"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "El envío ya ha sido enviado"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "El envío no tiene artículos de stock asignados"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "El artículo de stock no ha sido asignado"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "No se puede asignar el artículo de stock a una línea con una parte diferente"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "No se puede asignar stock a una línea sin una parte"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La cantidad de asignación no puede exceder la cantidad de stock"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Cantidad asignada debe ser mayor que cero"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "La cantidad debe ser 1 para el stock serializado"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "La orden de venta no coincide con el envío"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "El envío no coincide con el pedido de venta"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Línea"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Referencia del envío del pedido de venta"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Ítem"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Seleccionar artículo de stock para asignar"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Especificar la cantidad de asignación de stock"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Referencia de la orden de devolución"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Empresa de la cual se están devolviendo los artículos"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Estado de la orden de devolución"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "El artículo de almacén debe ser especificado"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "La cantidad de retorno excede la cantidad de existencias"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "La cantidad de retorno debe ser mayor que cero"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Cantidad inválida para el artículo de stock serializado"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Seleccionar el artículo a devolver del cliente"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Fecha de recepción"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Resultado"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Salida para esta partida"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Costo asociado con la devolución o reparación para esta partida"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr "Copiar líneas adicionales"
msgid "Copy extra line items from the original order"
msgstr "Copiar partidas extra del pedido original"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Copiar Parámetros"
@@ -5784,11 +5796,11 @@ msgstr "Combinar artículos"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Número de parte interna"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Introduzca el código de lote para los artículos de almacén entrantes"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Fecha de Expiración"
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Favoritos"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Profundidad"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Filtrar por profundidad de categoría"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Nivel superior"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Filtrar por categorías de nivel superior"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "En cascada"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Tiene resultados"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr "Palabras clave por defecto para partes en esta categoría"
msgid "Icon"
msgstr "Icono"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Icono (opcional)"
@@ -6349,7 +6369,7 @@ msgstr "Palabras clave para mejorar la visibilidad en los resultados de búsqued
msgid "Part category"
msgstr "Categoría de parte"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6358,7 +6378,7 @@ msgstr "IPN"
msgid "Part revision or version number"
msgstr "Revisión de parte o número de versión"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Revisión"
@@ -6382,7 +6402,7 @@ msgstr "Expiración por defecto"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Stock mínimo"
@@ -6390,7 +6410,7 @@ msgstr "Stock mínimo"
msgid "Minimum allowed stock level"
msgstr "Nivel mínimo de stock permitido"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Fecha"
@@ -6759,7 +6779,7 @@ msgstr "Sub parte"
msgid "Select part to be used in BOM"
msgstr "Seleccionar parte a utilizar en BOM"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr "Categoría principal de parte"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Subcategorías"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Moneda de compra de ítem de stock"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Parte original"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Seleccione la parte original a duplicar"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Copiar Imagen"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Copiar imagen desde la parte original"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Copiar BOM"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Copiar la factura de materiales de la parte original"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Copiar datos del parámetro de la parte original"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Copiar Notas"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Cantidad Inicial de Stock"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Seleccione proveedor (o déjelo en blanco para saltar)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Seleccionar fabricante (o dejar en blanco para saltar)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Número de parte del fabricante"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "La empresa seleccionada no es un proveedor válido"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "La empresa seleccionada no es un fabricante válido"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Nombre de categoría"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "En construcción"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Elementos de stock"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Inventario Total"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Duplicar Parte"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Stock Inicial"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Crear Parte con cantidad inicial de stock"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Información del proveedor"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Añadir información inicial del proveedor para esta parte"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Copiar Parámetros de Categoría"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Copiar plantillas de parámetro de la categoría de partes seleccionada"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Imagen Existente"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "El archivo de imagen no existe"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Validación de Lista de Materiales"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Puede construir"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Precio mínimo"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Anular el valor calculado para precio mínimo"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Precio mínimo de moneda"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Precio máximo"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Precio máximo de moneda"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Actualizar"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "El precio mínimo no debe ser mayor que el precio máximo"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "El precio máximo no debe ser inferior al precio mínimo"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Seleccionar parte de la que copiar BOM"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Eliminar Datos Existentes"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Eliminar artículos BOM existentes antes de copiar"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Incluye Heredado"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Incluye artículos BOM que son heredados de partes con plantillas"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Omitir filas no válidas"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Activar esta opción para omitir filas inválidas"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Copiar partes sustitutas"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr "No se especificó ninguna acción"
msgid "No matching action found"
msgstr "No se encontró ninguna acción coincidente"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "No se encontró ninguna coincidencia para los datos del código de barras"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Coincidencia encontrada para datos de códigos de barras"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "El código de barras coincide con artículo existente"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "No se ha encontrado ningún complemento para datos de código de barras"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "Ningún complemento coincide con el código de barras del proveedor"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Ningún pedido de venta proporcionado"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "El complemento no está instalado"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "Instalación del complemento no encontrada"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr "Complemento"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "No se encontró autor"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "El complemento '{p}' no es compatible con la versión actual de InvenTree {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "El complemento requiere al menos la versión {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "El complemento requiere como máximo la versión {v}"
@@ -8481,136 +8501,136 @@ msgstr "Legal"
msgid "Letter"
msgstr "Carta"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Nombre de la plantilla"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Adjuntar al modelo al imprimir"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Guardar la salida del informe como un archivo adjunto contra la instancia del modelo enlazado al imprimir"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Patrón de Nombre de archivo"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtros"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Tamaño de página para reportes PDF"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Ancho [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Ancho de la etiqueta, especificado en mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Altura [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Altura de la etiqueta, especificada en mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Fragmento"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Archivo fragmento de informe"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Descripción de archivo de fragmento"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Activo"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Reportar archivo de activos"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Descripción del archivo de activos"
@@ -8766,200 +8786,200 @@ msgstr "Sin resultados"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Ubicación principal"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Filtrar por ubicación principal"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Nombre de pieza (insensible a mayúsculas y minúsculas)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "El nombre de la pieza contiene (insensible a mayúsculas y minúsculas)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Nombre de la pieza (expresión regular)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "IPN de Pieza (insensible a mayúsculas y minúsculas)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "IPN de pieza contiene (insensible a mayúsculas y minúsculas)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "IPN de Pieza (expresión regular)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Existencias mínimas"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Existencias máximas"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Código de estado"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Ubicación externa"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "Consumido por orden de construcción"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "Instalado en otro artículo de existencias"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Árbol de piezas"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Actualizado antes de"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Actualizado después de"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Inventario antes de"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Inventario después de"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Desactualizado"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Cantidad requerida"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Debe suministrarse una parte válida"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Seleccionar Propietario"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Externo"
@@ -9101,7 +9121,7 @@ msgstr "Seleccione una parte del proveedor correspondiente para este artículo d
msgid "Where is this stock item located?"
msgstr "¿Dónde se encuentra este artículo de stock?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Empaquetar este artículo de stock se almacena en"
@@ -9117,7 +9137,7 @@ msgstr "¿Está este artículo instalado en otro artículo?"
msgid "Serial number for this item"
msgstr "Número de serie para este artículo"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Código de lote para este artículo de stock"
@@ -9206,7 +9226,7 @@ msgstr "La cantidad no coincide con los números de serie"
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr "Artículo de stock contiene otros artículos"
msgid "Stock item has been assigned to a customer"
msgstr "Artículo de stock ha sido asignado a un cliente"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "El artículo de stock está en producción"
@@ -9234,7 +9254,7 @@ msgstr "El artículo de stock está en producción"
msgid "Serialized stock cannot be merged"
msgstr "Stock serializado no puede ser combinado"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Artículos de Stock Duplicados"
@@ -9250,71 +9270,71 @@ msgstr "Los artículos de stock deben referirse a la misma parte del proveedor"
msgid "Stock status codes must match"
msgstr "Los códigos de estado del stock deben coincidir"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stock no se puede mover porque no está en stock"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Notas de entrada"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Debe proporcionarse un valor para esta prueba"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "El archivo adjunto debe ser subido para esta prueba"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Resultado de la prueba"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Valor de salida de prueba"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Adjunto de resultados de prueba"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Notas de prueba"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Finalizó"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr "Introduzca números de serie para nuevos artículos"
msgid "Supplier Part Number"
msgstr "Número de pieza del proveedor"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Expirado"
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "La cantidad no debe exceder la cantidad disponible de stock ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Ubicación de stock de destino"
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Sub-ubicación"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "La parte debe ser vendible"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "El artículo está asignado a una orden de venta"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "El artículo está asignado a una orden de creación"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Cliente para asignar artículos de stock"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "La empresa seleccionada no es un cliente"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Notas de asignación de stock"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Debe proporcionarse una lista de artículos de stock"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Notas de fusión de stock"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Permitir proveedores no coincidentes"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Permitir fusionar artículos de stock con diferentes partes de proveedor"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Permitir estado no coincidente"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Permitir fusionar artículos de stock con diferentes códigos de estado"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Debe proporcionar al menos dos artículos de stock"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Sin cambios"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Valor de clave primaria de Stock"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "No hay existencias del artículo"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Notas de transacción de stock"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Notas de transacción de stock"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr "Permisos"
msgid "Important dates"
msgstr "Fechas importantes"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Token revocado"
@@ -9927,163 +9951,163 @@ msgstr "Token revocado"
msgid "Token has expired"
msgstr "Token expirado"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "Token del API"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "Tokens del API"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Nombre del token"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Nombre personalizado del token"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Fecha de expiración del token"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Última conexión"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Última vez que se usó el token"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Revocado"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Permiso establecido"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Vista"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Permiso para ver artículos"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Añadir"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Permiso para añadir artículos"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Cambiar"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Permisos para editar artículos"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Eliminar"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Permiso para eliminar artículos"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po
index e3b9fa7eaa..f1f7880a2c 100644
--- a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Estonian\n"
"Language: et_EE\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Teil ei ole selle lehe vaatamiseks luba"
@@ -65,11 +65,11 @@ msgstr "E-posti aadressi kinnitus"
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr ""
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr ""
@@ -105,22 +105,22 @@ msgstr "Pane kuupäev"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Märkmed"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -164,51 +164,51 @@ msgstr ""
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Ühenduse viga"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Esines tõrge"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr "E-post"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr ""
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Vigane valik"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Nimi"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Kirjeldus"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Kirjeldus (valikuline)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Tee"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Serveri viga"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr ""
msgid "Currency"
msgstr "Valuuta"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr ""
@@ -521,11 +525,11 @@ msgstr "Hiina (lihtsustatud)"
msgid "Chinese (Traditional)"
msgstr "Hiina (traditsiooniline)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr ""
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "Osa"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr "Määratud"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Valikuline"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Jälgitud"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Saadaval"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Asukoht"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr ""
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr ""
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -883,8 +887,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr ""
@@ -900,7 +904,7 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr ""
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Osa nimi"
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Saadaval laos"
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "On link"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "On fail"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr "Pluginat pole"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr ""
@@ -1654,8 +1658,8 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr ""
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1686,7 +1690,7 @@ msgstr ""
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr "Pealkiri"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definitsioon"
msgid "Unit definition"
msgstr "Ühiku definitsioon"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Manus"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Mall"
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Kontekst"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Tulemus"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Võti"
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr "Failinimi"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Mudeli liik"
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "päeva"
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Komponent"
@@ -2931,7 +2935,7 @@ msgstr "Ostetav"
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Lehe suurus"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Luba liidese integreerimine"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Luba pluginatel integreeruda kasutajaliidesesse"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Tootja"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Ettevõte"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Kontakt e-postiaadress"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Aadress"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Tarnija"
@@ -4448,7 +4460,7 @@ msgstr "Tarnija"
msgid "Select supplier"
msgstr "Vali tarnija"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Grupp"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Staatus"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Müügihind"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Saadetud"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Saadetis"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Rida"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr "Kopeeri lisareaüksused algsest tellimusest"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Kopeeri parameetrid"
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "Tootekood"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Sügavus"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr "Ikoon"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikoon (valikuline)"
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr "Osa kategooria"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Minimaalne laoseis"
@@ -6390,7 +6410,7 @@ msgstr "Minimaalne laoseis"
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Originaalosa"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Kopeeri pilt"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Kategooria nimi"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Ehitamine"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Tarnija info"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Minimaalne hind"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Maksimaalne hind"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Uuenda"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr "Piirjoon"
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr "Paki plugin"
msgid "Plugin"
msgstr "Plugin"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Autorit ei leitud"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Lisa mudelile printimisel"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Salvesta aruande väljund manusega seotud mudeli eksemplari juurde printimisel"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtrid"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Mallifaili"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Testitulemused"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr "Tarnija osa number"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr "Õigused"
msgid "Important dates"
msgstr "Olulised kuupäevad"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API tunnus"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API tunnused"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Lunnuse nimi"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Kohandatud tunnuse nimi"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Tunnuse aegumise kuupäev"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Viimati nähtud"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Tühistatud"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Vaade"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Muuda"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Kustuta"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po
index 88ddde11a0..e0066fd70b 100644
--- a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Language: fa_IR\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "Address e API peida nashod"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "موارد باید به صورت لیست ارائه شود"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "لیست موارد نامعتبر ارائه شده است"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "تمامی فیلترها باید منحصراً با مقدار true مورد استفاده قرار گیرند"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "هیچ موردی با معیارهای ارائه شده مطابقت ندارد"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "کاربر سطح دسترسی نمایش این مدل را ندارد"
@@ -65,11 +65,11 @@ msgstr "تایید آدرس ایمیل"
msgid "You must type the same email each time."
msgstr "هر بار باید همان ایمیل را تایپ کنید."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "آدرس ایمیل اصلی ارائه شده معتبر نیست."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "دامنه ایمیل ارائه شده تایید نشده است."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "نمیتوان {original} را به {unit} تبدیل کرد"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "مقدار ارائه شده نامعتبر است"
@@ -105,22 +105,22 @@ msgstr "تاریخ را وارد کنید"
msgid "Invalid decimal value"
msgstr "مقدار اعشاری نامعتبر است"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "یادداشت"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "مقدار '{name}' در قالب الگو ظاهر قرار نمی گیرد"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "مقدار ارائه شده با الگوی مورد نیاز مطابقت ندارد: "
@@ -164,51 +164,51 @@ msgstr "برچسب های HTML را از این مقدار حذف کنید"
msgid "Data contains prohibited markdown content"
msgstr "داده ها حاوی محتوای علامت گذاری ممنوع است"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "خطا در اتصال"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "سرور با کد وضعیت نامعتبر پاسخ داد"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "یک استثنا رخ داده است"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "سرور با مقدار طول محتوا نامعتبر پاسخ داد"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "اندازه عکس بسیار بزرگ است"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "حجم دانلود تصویر از حداکثر اندازه بیشتر شده است"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "سرور ریموت پاسخ خالی را برگرداند"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "URL ارائه شده یک فایل تصویری معتبر نیست"
@@ -220,117 +220,121 @@ msgstr "وارد برنامه شوید"
msgid "Email"
msgstr "ایمیل"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "قبل از انجام هر کار دیگری باید احراز هویت دو مرحله ای را فعال کنید."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "خطا در اجرای تأیید اعتبار افزونه"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "فراداده باید یک شیء دیکت پایتون باشد"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "فراداده افزونه"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "فیلد فراداده JSON، برای استفاده توسط افزونه های خارجی"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "الگوی فرمت نامناسب"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "کلید قالب ناشناخته مشخص شده است"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "کلید قالب مورد نیاز وجود ندارد"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "فیلد مرجع نمی تواند خالی باشد"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "مرجع باید با الگوی مورد نیاز مطابقت داشته باشد"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "شماره مرجع خیلی بزرگ است"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "انتخاب نامعتبر"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "نام"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "توضیحات"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "توضیحات (اختیاری)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "مسیر"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "نامهای تکراری نمیتوانند تحت یک والد وجود داشته باشند"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "یادداشت های علامت گذاری (اختیاری)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "داده های بارکد"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "داده های بارکد شخص ثالث"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "هش بارکد"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "هش منحصر به فرد داده های بارکد"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "بارکد موجود پیدا شد"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "خطای سرور"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "یک خطا توسط سرور ثبت شده است."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "باید یک عدد معتبر باشد"
msgid "Currency"
msgstr "ارز"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "ارز را از گزینه های موجود انتخاب کنید"
@@ -521,11 +525,11 @@ msgstr "چینی (ساده شده)"
msgid "Chinese (Traditional)"
msgstr "چینی (سنتی)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr "واحد فیزیکی نامعتبر"
msgid "Not a valid currency code"
msgstr "کد ارز معتبر"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "وضعیت سفارش"
@@ -546,23 +550,23 @@ msgstr "وضعیت سفارش"
msgid "Parent Build"
msgstr ""
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "قطعه"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "دسته"
@@ -593,7 +597,7 @@ msgstr "دسته"
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "واگذار شده به من"
@@ -601,11 +605,11 @@ msgstr "واگذار شده به من"
msgid "Assigned To"
msgstr "واگذار شده به"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "ایجاد شده قبل از"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "ایجاد شده بعد از"
@@ -641,99 +645,99 @@ msgstr "تکمیل شده قبل از"
msgid "Completed after"
msgstr "تکمیل شده بعد از"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "مصرفی"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "اختیاری"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "مونتاژ"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "سفارش معوق"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "اختصاص داده شده"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "در دسترس"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "سفارش ساخت"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "مکان"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "مرجع سفارش فروش"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "منبع محل"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "مقصد"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -883,8 +887,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "تاریخ تکمیل"
@@ -900,7 +904,7 @@ msgstr "صادر شده توسط"
msgid "User who issued this build order"
msgstr "کاربری که این سفارش ساخت را صادر کرده است"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr ""
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr ""
@@ -1654,8 +1658,8 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr ""
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1686,7 +1690,7 @@ msgstr ""
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr ""
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr ""
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr ""
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr ""
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr "هیچ عملیات کاربر-محوری، مشخص نشده است"
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po
index 59e89c0768..3d4f0e0044 100644
--- a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Language: fi_FI\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API-rajapintaa ei löydy"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Käyttäjän oikeudet eivät riitä kohteen tarkastelemiseen"
@@ -65,11 +65,11 @@ msgstr "Sähköpostiosoitteen vahvistus"
msgid "You must type the same email each time."
msgstr "Sinun täytyy kirjoittaa sama sähköposti joka kerta."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Annettu ensisijainen sähköpostiosoite ei kelpaa."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Annetun sähköpostiosoitteen verkkotunnusta ei hyväksytä."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Annettu määrä on virheellinen"
@@ -105,22 +105,22 @@ msgstr "Anna päivämäärä"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Merkinnät"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -164,51 +164,51 @@ msgstr ""
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Yhteysvirhe"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Palvelin vastasi virheellisellä tilakoodilla"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Kuva on liian iso"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Kuvan lataus ylitti enimmäiskoon"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Etäpalvelin palautti tyhjän vastauksen"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Annettu URL ei ole kelvollinen kuvatiedosto"
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr "Sähköposti"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr ""
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metatietojen tulee olla python dict objekti"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Liitännäisen metadata"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON metadatakenttä, ulkoisten liitännäisten käyttöön"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Virheellisesti muotoiltu malli"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Viitekenttä ei voi olla tyhjä"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Viitenumero on liian suuri"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Virheellinen valinta"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Nimi"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Kuvaus"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Kuvaus (valinnainen)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Polku"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Viivakoodin Tiedot"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Palvelinvirhe"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Täytyy olla kelvollinen luku"
msgid "Currency"
msgstr "Valuutta"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Valitse valuutta käytettävissä olevista vaihtoehdoista"
@@ -521,11 +525,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr ""
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "Osa"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Kategoria"
@@ -593,7 +597,7 @@ msgstr "Kategoria"
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr ""
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Saatavilla"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Sijainti"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr ""
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr ""
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -883,8 +887,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr ""
@@ -900,7 +904,7 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Varastotuote"
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Käyttäjä"
@@ -1654,8 +1658,8 @@ msgstr "Käyttäjä"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Hinta"
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktiivinen"
@@ -1686,7 +1690,7 @@ msgstr "Aktiivinen"
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr "Otsikko"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Liite"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Arvo"
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Käytössä"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Avain"
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr "Tiedostonimi"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "päivää"
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Komponentti"
@@ -2931,7 +2935,7 @@ msgstr "Ostettavissa"
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Sivun koko"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Salli salasananpalautus"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Salli rekisteröinti"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Salli SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Salli SSO kirjautumissivuilla"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Salli SSO rekisteröinti"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Sähköposti vaaditaan"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Sähköpostiosoite kahdesti"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Salasana kahdesti"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Sallitut verkkotunnukset"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Pakota MFA"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Verkkotunnus ei saa olla tyhjä."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Virheellinen verkkotunnus: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Valmistaja"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Yritys"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Kontakti"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Osoite"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Valitse valmistaja"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Toimittaja"
@@ -4448,7 +4460,7 @@ msgstr "Toimittaja"
msgid "Select supplier"
msgstr "Valitse toimittaja"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Toimittajan varastonimike"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Ryhmä"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Valmis"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Tilauksen viite"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Tila"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Asiakas"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Asiakkaan viite "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Vastaanotettu"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Lähetetty"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Seurantakoodi"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Laskunumero"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr "Kuvake"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Kuvake (valinnainen)"
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Päivämäärä"
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Valmistajan osanumero"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Suodattimet"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Leveys [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Korkeus [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr "Oikeudet"
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Näytä"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Oikeus tarkastella kohteita"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Oikeus lisätä kohteita"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Muuta"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Oikeus muokata kohteita"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Poista"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Oikeus poistaa kohteita"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po
index 8814549478..db9c659246 100644
--- a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "Point de terminaison de l'API introuvable"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Les éléments doivent être fournis sous forme de liste"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Liste d'éléments non valide fournie"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Tous les filtres ne doivent être utilisés qu'avec \"true\""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Aucun élément ne correspond aux critères fournis"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Aucune donnée disponible"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Ce champ doit être unique"
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "L'utilisateur n'a pas la permission de voir ce modèle"
@@ -65,11 +65,11 @@ 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/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "L'adresse e-mail principale fournie n'est pas valide."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Le domaine e-mail fourni n'est pas approuvé."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Impossible de convertir {original} en {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
@@ -105,22 +105,22 @@ msgstr "Entrer la date"
msgid "Invalid decimal value"
msgstr "Valeur décimale invalide"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Notes"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "La valeur '{name}' n'apparaît pas dans le format du modèle"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "La valeur fournie ne correspond pas au modèle requis : "
@@ -164,51 +164,51 @@ msgstr "Retirer les balises HTML de cette valeur"
msgid "Data contains prohibited markdown content"
msgstr "Les données contiennent du contenu markdown interdit"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Erreur de connexion"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Le serveur a répondu avec un code de statut invalide"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Une erreur est survenue"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Le serveur a répondu avec une valeur de longueur de contenu invalide"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Image trop volumineuse"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "La taille de l'image dépasse la taille maximale autorisée"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Le serveur distant a renvoyé une réponse vide"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "L'URL fournie n'est pas un fichier image valide"
@@ -220,117 +220,121 @@ msgstr "Se connecter à l'application"
msgid "Email"
msgstr "E-mail"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Vous devez activer l'authentification à deux facteurs avant toute autre chose."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Erreur lors de l'exécution de la validation du plugin"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Les metadata doivent être un objet python de type \"dict\""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Métadonnées de l'Extension"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Champs metadata JSON, pour plugins tiers"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Modèle mal formaté"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Clé de format inconnu spécifiée"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Clé de format requise manquante"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Le champ de référence ne peut pas être vide"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "La référence doit correspondre au modèle requis"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Le numéro de référence est trop grand"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Choix invalide"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Nom"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Description"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Description (facultative)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Chemin d'accès"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Les noms dupliqués ne peuvent pas exister sous le même parent"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Notes Markdown (option)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Données du code-barres"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Données de code-barres tierces"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Hash du code-barre"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Hachage unique des données du code-barres"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Code-barres existant trouvé"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Erreur serveur"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Une erreur a été loguée par le serveur."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Doit être un nombre valide"
msgid "Currency"
msgstr "Devise"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Sélectionnez la devise à partir des options disponibles"
@@ -521,11 +525,11 @@ msgstr "Chinois (Simplifié)"
msgid "Chinese (Traditional)"
msgstr "Chinois (Traditionnel)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Mise à jour disponible"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Une mise à jour pour InvenTree est disponible"
@@ -537,7 +541,7 @@ msgstr "Unité invalide"
msgid "Not a valid currency code"
msgstr "Code de devise invalide"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Statut de la commande"
@@ -546,23 +550,23 @@ msgstr "Statut de la commande"
msgid "Parent Build"
msgstr "Fabrication parente"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Inclure les variantes"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Inclure les variantes"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Inclure les variantes"
msgid "Part"
msgstr "Pièce"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Catégorie"
@@ -593,7 +597,7 @@ msgstr "Catégorie"
msgid "Ancestor Build"
msgstr "Version Précédente"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Attribué à moi"
@@ -601,11 +605,11 @@ msgstr "Attribué à moi"
msgid "Assigned To"
msgstr "Attribué à"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Créé avant"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Créé après"
@@ -641,99 +645,99 @@ msgstr "Terminé avant"
msgid "Completed after"
msgstr "Terminé après"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Date min"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Date maximale"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Exclure l'arbre"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "La construction doit être annulée avant de pouvoir être supprimée"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Consommable"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Facultatif"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Assemblage"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Suivi"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Testable"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Commande en cours"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Allouée"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Consommé"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponible"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "En Commande"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Ordre de Fabrication"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Emplacement"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Sortie"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Filtrer par l'identifiant (ID) des articles du stock de sortie. Utilisez 'null' pour trouver les éléments de fabrication non installés."
@@ -773,9 +777,9 @@ msgstr "La date cible doit être postérieure à la date de début"
msgid "Build Order Reference"
msgstr "Référence de l' Ordre de Fabrication"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Bon de commande de référence"
msgid "Sales Order to which this build is allocated"
msgstr "Commande de vente à laquelle cette fabrication est allouée"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Emplacement d'origine"
@@ -821,7 +825,7 @@ msgstr "Fabrication externe"
msgid "This build order is fulfilled externally"
msgstr "Cet ordre de fabrication est exécuté en externe"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Emplacement cible"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Code de statut de construction"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Code de lot"
@@ -883,8 +887,8 @@ msgstr "Date d'achèvement cible"
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:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Date d'achèvement"
@@ -900,7 +904,7 @@ msgstr "Émis par"
msgid "User who issued this build order"
msgstr "Utilisateur ayant émis cette commande de construction"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Priorité de cet ordre de fabrication"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Code du projet"
@@ -962,9 +966,9 @@ msgstr "L'ordre de production de correspond pas à l'ordre de commande"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "La quantité doit être supérieure à zéro"
@@ -999,7 +1003,7 @@ msgstr "Création de l'objet"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "La quantité doit être de 1 pour stock sérialisé"
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:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "L'article de stock est suralloué"
@@ -1057,8 +1061,8 @@ msgstr "L'article de stock est suralloué"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Article en stock"
@@ -1082,7 +1086,7 @@ msgstr "Stock de destination de l'article"
msgid "Build Level"
msgstr "Niveau de construction"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Nom de l'article"
@@ -1139,7 +1143,7 @@ msgstr "Allouer automatiquement les numéros de série"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Affecter automatiquement les éléments requis avec les numéros de série correspondants"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Les numéros de série suivants existent déjà, ou sont invalides"
@@ -1272,7 +1276,7 @@ msgstr "Élément de la ligne de construction"
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:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "L'article doit être en stock"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr "Construire"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Pièce fournisseur"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Autoriser les variantes"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Article du BOM"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "En Production"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "Planifié pour fabrication"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Stock externe"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Stock disponible"
@@ -1527,31 +1531,31 @@ msgstr "Ordre de commande en retard"
msgid "Build order {bo} is now overdue"
msgstr "L'ordre de commande {bo} est maintenant en retard"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "C'est un lien"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "C'est un fichier"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "L'utilisateur n'a pas les permissions de supprimer cette pièce jointe"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "La liste de sélection est verrouillée"
@@ -1571,8 +1575,8 @@ msgstr "Aucun code de devise valide fourni"
msgid "No plugin"
msgstr "Pas de plugin"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "La chaîne de caractères constituant la clé doit être unique"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Utilisateur"
@@ -1654,8 +1658,8 @@ msgstr "Utilisateur"
msgid "Price break quantity"
msgstr "Quantité de rupture de prix"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Prix"
@@ -1677,8 +1681,8 @@ msgstr "Nom de ce webhook"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Actif"
@@ -1686,7 +1690,7 @@ msgstr "Actif"
msgid "Is this webhook active"
msgstr "Ce webhook (lien de rappel HTTP) est-il actif"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Jeton"
@@ -1756,7 +1760,7 @@ msgstr "Titre"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Définition"
msgid "Unit definition"
msgstr "Définition de l'unité"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Pièce jointe"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "Clé logique de l'état qui est égale à cet état personnalisé dans la logique métier"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Valeur"
@@ -2172,7 +2176,7 @@ msgstr "Choix valables pour ce paramètre (séparés par des virgules)"
msgid "Selection list for this parameter"
msgstr "Liste de sélection pour ce paramètre"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Activé"
@@ -2204,8 +2208,8 @@ msgstr "Identifiant du Modèle (ID)"
msgid "ID of the target model for this parameter"
msgstr "ID du modèle cible pour ce paramètre"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Modèle"
@@ -2262,7 +2266,7 @@ msgstr "Date et heure du scan de code-barres"
msgid "URL endpoint which processed the barcode"
msgstr "Point d'accès à l'URL qui a traité le code-barres"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Contexte"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Données de réponse provenant de la lecture du code-barres"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Résultat"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "Fils d'Emails"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Clé"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} annulé"
msgid "A order that is assigned to you was canceled"
msgstr "Une commande qui vous est assignée a été annulée"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Articles reçus"
@@ -2524,7 +2528,7 @@ msgstr "Nom du fichier"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Type de modèle"
@@ -2669,8 +2673,8 @@ msgstr "Fréquence de mise à jour des taux de change (définir à zéro pour d
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "jours"
@@ -2914,8 +2918,8 @@ msgstr "Les pièces sont des templates par défaut"
msgid "Parts can be assembled from other components by default"
msgstr "Les pièces peuvent être assemblées à partir d'autres composants par défaut"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Composant"
@@ -2931,7 +2935,7 @@ msgstr "Achetable"
msgid "Parts are purchaseable by default"
msgstr "Les pièces sont achetables par défaut"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Vendable"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Enregistrer les erreurs qui se produisent lors de la génération de rapports"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Taille de la page"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Permettre le transfert d'articles qui ne sont pas en stock d'un magasin à l'autre"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Modèle de référence de commande de construction"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Modèle requis pour générer le champ de référence de l'ordre de construction"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Nécessite un Responsable propriétaire"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Un propriétaire responsable doit être assigné à chaque commande"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Exiger une partie active"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Empêcher la création d'un ordre de fabrication pour les pièces inactives"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Requiert une pièce verrouillée"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Empêcher la création d'un ordre de fabrication pour les pièces non verrouillées"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "Exiger une nomenclature valide"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Empêcher la création d'un ordre de fabrication si la nomenclature n'a pas été validée"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "Exiger des ordonnances fermées pour les enfants"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Empêcher l'achèvement de l'ordre de construction jusqu'à ce que tous les ordres d'enfants soient clôturés"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "Ordres de fabrication externes"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "Activer la fonctionnalité d'ordre de fabrication externe"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Blocage jusqu'à la réussite des tests"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Empêcher l'achèvement des résultats de la construction jusqu'à ce que tous les tests requis soient réussis"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Activer les retours de commandes"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Activer la fonctionnalité de retour de commande dans l'interface utilisateur"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Modèle de référence de retour de commande"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Modèle requis pour générer le champ de référence de la commande de retour"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Modifier les retours de commandes terminées"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Autoriser la modification des retours après leur enregistrement"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Modèle de référence de bon de commande"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Modèle requis pour générer le champ de référence du bon de commande"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Expédition par défaut du bon de commande"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Activer la création d'expédition par défaut avec les bons de commandes"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Modifier les commandes de vente terminées"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Autoriser la modification des commandes de vente après avoir été expédiées ou complétées"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "L'expédition nécessite une vérification"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "Empêcher l'achèvement des envois jusqu'à ce que les articles aient été vérifiés"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Marquer les commandes expédiées comme achevées"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Les commandes marquées comme expédiées seront automatiquement complétées, en contournant le statut « expédié »"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Modèle de référence de commande d'achat"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Modèle requis pour générer le champ de référence de bon de commande"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Modifier les bons de commande terminés"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Autoriser la modification des bons de commande après avoir été expédiés ou complétés"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Convertir la monnaie"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "Convertir la valeur de l'article dans la devise de base lors de la réception du stock"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Achat automatique des commandes"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Marquer automatiquement les bons de commande comme terminés lorsque tous les articles de la ligne sont reçus"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Activer les mots de passe oubliés"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Activer la fonction \"Mot de passe oublié\" sur les pages de connexion"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Activer les inscriptions"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Activer l'auto-inscription pour les utilisateurs sur les pages de connexion"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Activer le SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Activer le SSO sur les pages de connexion"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Activer l'inscription SSO"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Activer l'auto-inscription via SSO pour les utilisateurs sur les pages de connexion"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "Activer la synchronisation du groupe SSO"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Permettre la synchronisation des groupes InvenTree avec les groupes fournis par l'IdP"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "Clé du groupe SSO"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "Le nom de l'attribut de revendication de groupe fourni par l'IdP"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "Carte de groupe SSO"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "Une correspondance entre les groupes SSO et les groupes InvenTree locaux. Si le groupe local n'existe pas, il sera créé."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Supprimer les groupes en dehors de SSO"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "Indique si les groupes attribués à l'utilisateur doivent être supprimés s'ils ne sont pas gérés par l'IdP. La désactivation de ce paramètre peut entraîner des problèmes de sécurité"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Email requis"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Exiger que l'utilisateur fournisse un mail lors de l'inscription"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Saisie automatique des utilisateurs SSO"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Remplir automatiquement les détails de l'utilisateur à partir des données de compte SSO"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Courriel en double"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mail"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Mot de passe deux fois"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Lors de l'inscription, demandez deux fois aux utilisateurs leur mot de passe"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Domaines autorisés"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Restreindre l'inscription à certains domaines (séparés par des virgules, commençant par @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Grouper sur inscription"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Groupe auquel les nouveaux utilisateurs sont assignés lors de l'enregistrement. Si la synchronisation des groupes SSO est activée, ce groupe n'est défini que si aucun groupe ne peut être attribué par l'IdP."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Forcer l'authentification multifacteurs"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Les utilisateurs doivent utiliser l'authentification multifacteurs."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr "Activer ce paramètre demandera à tous les utilisateurs de configurer l'authentification multi-facteurs. Toutes les sessions seront déconnectées immédiatement."
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Vérifier les plugins au démarrage"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Vérifier que tous les plugins sont installés au démarrage - activer dans les environnements conteneurs"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Vérifier les mises à jour des plugins"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Activer les vérifications périodiques pour les mises à jour des plugins installés"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Activer l'intégration d'URL"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Autoriser les plugins à ajouter des chemins URL"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Activer l'intégration de navigation"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Activer les plugins à s'intégrer dans la navigation"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Activer l'intégration de plugins"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Activer l'intégration de plugin pour ajouter des apps"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Activer l'intégration du planning"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Autoriser les plugins à éxécuter des tâches planifiées"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Activer l'intégration des évènements"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Autoriser les plugins à répondre aux évènements internes"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Permettre l'intégration de l'interface"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Permettre aux plugins de s'intégrer dans l'interface utilisateur"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "Activer l'intégration mail"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "Autoriser les plugins à traiter les mails entrants/sortants"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "Activer les codes de projet"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Activer les codes de projet pour le suivi des projets"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "Activer la fonctionnalité d'enregistrement des historiques de niveaux de stock et de leur valeur"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Exclure les localisations externes"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Période de l'inventaire automatique"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Afficher les noms des utilisateurs"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Afficher les noms complets des utilisateurs au lieu des noms d'utilisateur"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "Afficher les profils d'utilisateur"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "Afficher les profils des utilisateurs sur leur page de profil"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Activer les données de station de test"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Activer la collecte des données de la station de test pour les résultats de test"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "Tous les modèles"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "Aucun type de modèle d'attachement n'est fourni"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Type de modèle de pièce jointe non valide"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "Les places minimales ne peuvent être supérieures aux places maximales"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "Le nombre maximum de places ne peut être inférieur au nombre minimum de places"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Un domaine vide n'est pas autorisé."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Nom de domaine invalide : {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "La valeur doit être en majuscules"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "La valeur doit être un identifiant de variable valide"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "Le fournisseur est actif"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Fabricant"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Société"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Adresse e-mail de contact"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Contact"
@@ -4297,7 +4309,7 @@ msgstr "N° de TVA"
msgid "Company Tax ID"
msgstr "Numéro d'identification fiscale de l'entreprise"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Adresse"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Lien vers les informations de l'adresse (externe)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Pièces du fabricant"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Sélectionner un fabricant"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "Référence fabricant"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "La pièce du fabricant liée doit faire référence à la même pièce de base"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Fournisseur"
@@ -4448,7 +4460,7 @@ msgstr "Fournisseur"
msgid "Select supplier"
msgstr "Sélectionner un fournisseur"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Unité de gestion des stocks des fournisseurs"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Frais minimums (par exemple frais de stock)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Conditionnement"
@@ -4533,7 +4545,7 @@ msgstr "Devise par défaut utilisée pour ce fournisseur"
msgid "Company Name"
msgstr "Nom de l'entreprise"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "En Stock"
@@ -4722,7 +4734,7 @@ msgstr "Données de la ligne d'origine"
msgid "Errors"
msgstr "Erreurs"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Valide"
@@ -4838,7 +4850,7 @@ msgstr "Nombre de copies à imprimer pour chaque étiquette"
msgid "Connected"
msgstr "Connecté"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Inconnu"
@@ -4942,7 +4954,7 @@ msgstr "Clé de la propriété"
msgid "Value of the property"
msgstr "Valeur de la propriété"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Groupe"
@@ -4966,118 +4978,118 @@ msgstr "Progression maximale"
msgid "Maximum value for progress type, required if type=progress"
msgstr "Valeur maximale pour le type de progression, requis si type=progress"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Référence de commande"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Remarquable"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "A le code du projet"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Créé par"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Créé avant"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Créé après"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "A la date de début"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "Date de début Avant"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "Date de début Après"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "A une date cible"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Date cible Avant"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Date cible Après"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Possède un Tarif"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Terminé avant"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Terminé après"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "Ordre de fabrication externe"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Commande"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Commande Complétée"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Pièces Internes"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Commande En Attente"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Terminé"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Fait l'objet d'une expédition"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Commande d’achat"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Commande d’achat"
msgid "Sales Order"
msgstr "Commandes"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Retour de commande"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr "L'adresse ne correspond pas à la société sélectionnée"
msgid "Order description (optional)"
msgstr "Description de la commande (facultatif)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Sélectionner le code du projet pour cette commande"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Lien vers une page externe"
@@ -5151,7 +5163,7 @@ msgstr "Date de début"
msgid "Scheduled start date for this order"
msgstr "Date de début prévue pour cette commande"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Date Cible"
@@ -5184,487 +5196,487 @@ msgstr "Point de contact pour cette commande"
msgid "Company address for this order"
msgstr "Adresse de l'entreprise pour cette commande"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Référence de la commande"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "État"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Statut de la commande d'achat"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Société de laquelle les articles sont commandés"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Référence du fournisseur"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Code de référence de la commande fournisseur"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "reçu par"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Date à laquelle la commande a été complété"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Destination"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Destination des articles reçus"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Le fournisseur de la pièce doit correspondre au fournisseur de la commande"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Le poste ne correspond pas au bon de commande"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "Il manque une pièce liée à l'article de la ligne"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "La quantité doit être un nombre positif"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Client"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Société à laquelle les articles sont vendus"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Statut de la commande client"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Référence client "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Code de référence de la commande du client"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Nom de l’expédition"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "expédié par"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "La commande est déjà terminée"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "La commande est déjà annulée"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Seule une commande ouverte peut être marquée comme complète"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "La commande ne peut pas être terminée car il y a des envois incomplets"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "L'ordre ne peut pas être achevé car les allocations sont incomplètes"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "L'ordre ne peut pas être complété car il y a des postes incomplets"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "La commande est verrouillée et ne peut être modifiée"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Nombre d'élement"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Référence du poste"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Notes sur les postes"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Date cible pour ce poste (laisser vide pour utiliser la date cible de la commande)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Description du poste (facultatif)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Contexte supplémentaire pour cette ligne"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Prix unitaire"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "Poste du bon de commande"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "La pièce du fournisseur doit correspondre à celle du fournisseur"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "L'ordre de fabrication doit être marqué externe"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "Les ordres de fabrication ne peuvent être liées qu'à des pièces d'assemblage"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "Les pièces d'ordre de fabrication doivent correspondre la pièce d'objet"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Pièce fournisseur"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Reçu"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Nombre d'éléments reçus"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Prix d'achat"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Prix d'achat unitaire"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "Ordre de fabrication externe à remplir par cet élément de ligne"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "Ligne supplémentaire du bon de commande"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "Poste de commande client"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Seules les pièces vendues peuvent être attribuées à une commande"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Prix de vente"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Prix de vente unitaire"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Expédié"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Quantité expédiée"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "Envoi de la commande client"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "L'adresse d'expédition doit correspondre au client"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "Adresse de livraison pour cet envoi"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Date d'expédition"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Date de Livraison"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Date de livraison de l'envoi"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Vérifié par"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Utilisateur qui a vérifié cet envoi"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Envoi"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Numéro d'expédition"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "N° de suivi"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Information de suivi des colis"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "N° de facture"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Numéro de référence de la facture associée"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Le colis a déjà été envoyé"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "L'expédition n'a pas d'articles en stock alloués"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "L'expédition doit être vérifiée avant de pouvoir être terminée"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "Ligne supplémentaire de commande client"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "Affectation des commandes clients"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "L'article de stock n'a pas été assigné"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Impossible d'allouer l'article en stock à une ligne avec une autre pièce"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Impossible d'allouer le stock à une ligne sans pièce"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La quantité d'allocation ne peut pas excéder la quantité en stock"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "La quantité allouée doit être supérieure à zéro"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "La quantité doit être égale à 1 pour un article de stock sérialisé"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "La commande client ne correspond pas à l'expédition"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "L'envoi ne correspond pas à la commande client"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Ligne"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Référence de l'expédition de la commande client"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Article"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Sélectionner l'article de stock à affecter"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Saisir la quantité d'allocation de stock"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Retour Référence de la commande"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Entreprise à l'origine du retour des articles"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Statut du retour de commande"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "Poste de l'ordre de retour"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "L'article en stock doit être spécifié"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "La quantité retournée dépasse la quantité en stock"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "La quantité retournée doit être supérieure à zéro"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Quantité non valide pour un article de stock sérialisé"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Sélectionner l'article à retourner par le client"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Date de réception"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr "La date de réception de cet article en retour"
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Résultats"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Résultat pour ce poste"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Coût associé au retour ou à la réparation de ce poste"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "Ordre de retour Ligne supplémentaire"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr "Copier les lignes supplémentaires"
msgid "Copy extra line items from the original order"
msgstr "Copier les postes supplémentaires de l'ordre original"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Copier les paramètres"
@@ -5784,11 +5796,11 @@ msgstr "Fusionner des éléments"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Fusionner en un seul poste les éléments ayant la même partie, la même destination et la même date cible"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "Unité de gestion des stocks"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Numéro de pièce interne"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Saisir le code de lot pour les articles de stock entrant"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Date d'expiration"
@@ -6056,123 +6068,131 @@ msgstr "Ordre de retour en retard"
msgid "Return order {ro} is now overdue"
msgstr "L'ordre de retour {ro} est maintenant en retard"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Étoilé"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Filtrer par catégories étoilées"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Profondeur"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Filtrer par profondeur de catégorie"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Premier niveau"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Filtrer par catégories de premier niveau"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Cascade"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Inclure les sous-catégories dans les résultats filtrés"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Parent"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Filtrer par catégorie de parents"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Exclure les sous-catégories de la catégorie spécifiée"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "A des résultats"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "Est variante"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "Est la révision"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "A des révisions"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "Nomenclature valide"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "Catégories en cascade"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "Si vrai, inclure des éléments dans les sous-catégories de la catégorie donnée"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Filtrer par ID de catégorie numérique ou par 'null'"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr "La pièce d'assemblage est active"
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr "La pièce d'assemblage est traçable"
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "La pièce d'assemblage est testable"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "Le composant est testable"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Utilise"
@@ -6213,7 +6233,7 @@ msgstr "Mots-clés par défaut pour les pièces de cette catégorie"
msgid "Icon"
msgstr "Icône"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Icône (facultatif)"
@@ -6349,7 +6369,7 @@ msgstr "Les mots-clés partiels pour améliorer la visibilité dans les résulta
msgid "Part category"
msgstr "Catégorie de la pièce"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6358,7 +6378,7 @@ msgstr "IPN"
msgid "Part revision or version number"
msgstr "Numéro de révision ou de version de la pièce"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Révision"
@@ -6382,7 +6402,7 @@ msgstr "Expiration par défaut"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Délai d'expiration (en jours) pour les articles en stock de cette pièce"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Stock Minimum"
@@ -6390,7 +6410,7 @@ msgstr "Stock Minimum"
msgid "Minimum allowed stock level"
msgstr "Niveau de stock minimum autorisé"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Stock total disponible au moment de l'inventaire"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Date"
@@ -6759,7 +6779,7 @@ msgstr "Sous-partie"
msgid "Select part to be used in BOM"
msgstr "Sélectionner la pièce à utiliser dans la nomenclature"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr "Catégorie de parents"
msgid "Parent part category"
msgstr "Catégorie de pièce mère"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Sous-catégories"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Résultats"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Nombre de résultats enregistrés par rapport à ce modèle"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Devise d'achat de l'item"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "Le fichier n'est pas une image"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Partie originale"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Sélectionner la partie originale à dupliquer"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Copier l'image"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Copier l'image à partir de la partie originale"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Copier la nomenclature"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Copie de la nomenclature de la pièce originale"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Copie des données de paramètres de la pièce d'origine"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Notes sur la copie"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Copier les notes de la partie originale"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "Test Copie"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Quantité de stock initial"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Indiquer la quantité de stock initiale pour cette pièce. Si la quantité est égale à zéro, aucun stock n'est ajouté."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Emplacement initial du stock"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Spécifier l'emplacement du stock initial pour cette pièce"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Sélectionner le fournisseur (ou laisser en blanc pour passer)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Sélectionner le fabricant (ou laisser en blanc pour ignorer)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Numéro de pièce du fabricant"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "L'entreprise sélectionnée n'est pas un fournisseur valide"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "L'entreprise sélectionnée n'est pas un fabricant valide"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "La pièce du fabricant correspondant à ce MPN existe déjà"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "La pièce du fournisseur correspondant à cette UGS existe déjà"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Nom catégorie"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Construction"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "Quantité de cette pièce actuellement en production"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Quantité exceptionnelle de cette pièce sont planifié à la fabrication"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Éléments en stock"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Révisions"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Stock total"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Stock non attribué"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Variante Stock"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Dupliquer une pièce"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Copier les données initiales d'une autre partie"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Stock initial"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Créer une pièce avec une quantité de stock initiale"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Informations sur le fournisseur"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Ajouter les informations initiales du fournisseur pour cette pièce"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Copier les paramètres de la catégorie"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Copier les modèles de paramètres de la catégorie de pièces sélectionnée"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Image existante"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Nom de fichier d'une image de pièce existante"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Le fichier image n'existe pas"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Valider l'ensemble de la nomenclature"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Peut construire"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "Nécessaire pour fabrication"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "Alloué à la fabrication"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "Nécessaire pour les commandes"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "Alloué aux commandes"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Prix Minimum"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Remplacer la valeur calculée pour le prix minimum"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Prix minimum monnaie"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Prix Maximum"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Remplacer la valeur calculée pour le prix maximum"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Devise du prix maximum"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Mise à jour"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Mise à jour des prix pour cette pièce"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Impossible de convertir les devises fournies en {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Le prix minimum ne doit pas être supérieur au prix maximum"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Le prix maximum ne doit pas être inférieur au prix minimum"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "Sélectionner l'assemblage parent"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "Sélectionner le composant"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Sélectionner la pièce à partir de laquelle copier la nomenclature"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Supprimer les données existantes"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Supprimer les postes de nomenclature existants avant de les copier"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Inclure l'héritage"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Inclure les éléments de nomenclature hérités des pièces modélisées"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Sauter les lignes non valides"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Activez cette option pour ignorer les lignes non valides"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Copier les pièces de remplacement"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Copie de pièces de rechange en cas de duplication de postes de nomenclature"
@@ -7326,91 +7346,91 @@ msgstr "Aucune action spécifiée"
msgid "No matching action found"
msgstr "Aucune action correspondante trouvée"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Aucune correspondance trouvée pour les données du code-barres"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Correspondance trouvée pour les données du code-barres"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "Le modèle n'est pas pris en charge"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "L'instance de modèle n'a pas été trouvée"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Le code-barres correspond à l'article existant"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Aucune donnée correspondante n'a été trouvée"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Aucune pièce de fournisseur correspondante n'a été trouvée"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Plusieurs pièces de fournisseurs correspondantes trouvées"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "Aucun plugin correspondant n'a été trouvé pour les données de code-barres"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Pièce du fournisseur assortie"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "L'article a déjà été reçu"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "Pas de correspondance de plugin pour le code-barres du fournisseur"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Plusieurs postes correspondants trouvés"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Aucun poste correspondant n'a été trouvé"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Aucun ordre de vente n'a été fourni"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Le code-barres ne correspond pas à un article de stock existant"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Le poste de stock ne correspond pas au poste individuel"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Stock disponible insuffisant"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Article de stock attribué à la commande client"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Pas assez d'informations"
@@ -7992,7 +8012,7 @@ msgstr "Frontière"
msgid "Print a border around each label"
msgstr "Imprimer une bordure autour de chaque étiquette"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Paysage"
@@ -8072,77 +8092,77 @@ msgstr "Prise en charge de la lecture des codes-barres TME"
msgid "The Supplier which acts as 'TME'"
msgstr "Le fournisseur qui agit en tant que \"TME"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "L'installation du plugin est désactivée"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Installation réussie du plugin"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Installation du plugin dans {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "Le plugin n'a pas été trouvé dans le registre"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "Le plugin n'est pas un plugin packagé"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "Le nom du paquet du plugin n'a pas été trouvé"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "Seuls les membres du personnel peuvent administrer les plugins"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "La désinstallation des plugins est désactivée"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Le plugin ne peut pas être désinstallé car il est actuellement actif"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "Le plugin n'est pas installé"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "L'installation du plugin n'a pas été trouvée"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "Désinstallation réussie du plugin"
@@ -8194,21 +8214,21 @@ msgstr "Plugin Package"
msgid "Plugin"
msgstr "Extension"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Aucun auteur trouvé"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Le plugin '{p}' n'est pas compatible avec la version actuelle d'InvenTree {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Le plugin nécessite au moins la version {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Le plugin nécessite au maximum la version {v}"
@@ -8481,136 +8501,136 @@ msgstr "Juridique"
msgid "Letter"
msgstr "Lettre"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "Le fichier modèle portant ce nom existe déjà"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Nom du modèle"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Description du modèle"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "Numéro de révision (auto-incrémentation)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Joindre au modèle sur l'impression"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Enregistrer le rapport en tant que pièce jointe à l'instance de modèle liée lors de l'impression"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Modèle de nom de fichier"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "Modèle de génération de noms de fichiers"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "Le modèle est activé"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "Type de modèle cible pour le modèle"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtres"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "Filtres de requête de modèle (liste de paires clé/valeur séparées par des virgules)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Fichier modèle"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Taille des pages pour les rapports PDF"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Rendre le rapport en orientation paysage"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "Fusionner"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "Rapport généré à partir du modèle {self.name}"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "Erreur dans la génération du rapport"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Largeur [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Largeur de l'étiquette, spécifiée en mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Hauteur [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Hauteur de l'étiquette, spécifiée en mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "Erreur d'impression des étiquettes"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Extrait "
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Fichier d'extrait de rapport"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Description du fichier d'extrait"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Elément"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Rapport sur le fichier d'actifs"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Description du fichier d'actifs"
@@ -8766,200 +8786,200 @@ msgstr "Pas de résultat"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Fichier image non trouvé"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "la balise part_image nécessite une instance de Part"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "la balise company_image nécessite une instance d'entreprise"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "Filtrer par profondeur de localisation"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "Filtrer par lieux de premier niveau"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "Inclure les sous-emplacements dans les résultats filtrés"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Emplacement parent"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Filtrer par emplacement parent"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Nom de la pièce (insensible à la casse)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "Le nom de la pièce contient (insensible à la casse)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Nom de la pièce (regex)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "Partie IPN (insensible à la casse)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "La partie IPN contient (insensible à la casse)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "Partie IPN (regex)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Stock minimum"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Stock maximum"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Code de statut"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Emplacement externe"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "Consommé par l'ordre de construction"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "Installé dans un autre article en stock"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Arbre en pièces détachées"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Mise à jour avant"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Mise à jour après"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Inventaire avant"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Inventaire après"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Date d'expiration avant"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Date d’expiration après"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Périmé"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "La quantité est requise"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "La partie valide doit être fournie"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "Le fournisseur donné n'existe pas"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "La pièce du fournisseur a une taille d'emballage définie, mais le drapeau use_pack_size n'est pas activé"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Les numéros de série ne peuvent pas être fournis pour une pièce non traçable"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Sélectionner un propriétaire"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Les articles en stock ne peuvent pas être directement placés dans un emplacement de stock structurel, mais peuvent être placés dans des emplacements subordonnés."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Externe"
@@ -9101,7 +9121,7 @@ msgstr "Sélectionnez une pièce fournisseur correspondante pour cet article en
msgid "Where is this stock item located?"
msgstr "Où se trouve cet article en stock ?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "L'emballage de cet article en stock est stocké dans"
@@ -9117,7 +9137,7 @@ msgstr "L'article a été installé dans un autre article ?"
msgid "Serial number for this item"
msgstr "Numéro de série pour cet article"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Code de lot pour cet article de stock"
@@ -9206,7 +9226,7 @@ msgstr "La quantité ne correspond pas au nombre de numéros de série"
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "Le modèle de test n'existe pas"
@@ -9226,7 +9246,7 @@ msgstr "L'article de stock contient d'autres articles"
msgid "Stock item has been assigned to a customer"
msgstr "Un article de stock a été affecté à un client"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "L'article de stock est actuellement en production"
@@ -9234,7 +9254,7 @@ msgstr "L'article de stock est actuellement en production"
msgid "Serialized stock cannot be merged"
msgstr "Le stock sérialisé ne peut pas être fusionné"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Articles de stock en double"
@@ -9250,71 +9270,71 @@ msgstr "Les articles en stock doivent se référer à la même pièce du fournis
msgid "Stock status codes must match"
msgstr "Les codes d'état des stocks doivent correspondre"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "StockItem ne peut pas être déplacé car il n'est pas en stock"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "Suivi des articles en stock"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Notes d'entrée"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "Résultat du test de l'article en stock"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Une valeur doit être fournie pour ce test"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "La pièce jointe doit être téléchargée pour ce test"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "Valeur non valide pour ce test"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Résultat du test"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Valeur de sortie du test"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Pièce jointe au résultat du test"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Notes de test"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "Station de test"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "L'identifiant de la station de test où le test a été effectué"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Commencé"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "Horodatage du début du test"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Fini"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "Horodatage de la fin du test"
@@ -9398,7 +9418,7 @@ msgstr "Entrez les numéros de série pour les nouveaux articles"
msgid "Supplier Part Number"
msgstr "Référence du fournisseur"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Expiré"
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "La quantité ne doit pas dépasser la quantité disponible en stock ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Emplacement du stock de destination"
@@ -9501,127 +9521,131 @@ msgstr "Sélectionner les articles en stock pour modifier leur statut"
msgid "No stock items selected"
msgstr "Aucun article en stock n'a été sélectionné"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Sous-localisations"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "Emplacement du stock mère"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "La pièce doit être vendable"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "L'article est affecté à une commande client"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "L'article est attribué à un ordre de fabrication"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Affectation d'articles en stock par le client"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "L'entreprise sélectionnée n'est pas un client"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Notes d'affectation des stocks"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Une liste des articles en stock doit être fournie"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Notes sur les fusions d'actions"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Autoriser les fournisseurs non concordants"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Permettre la fusion d'articles en stock avec des pièces de fournisseurs différents"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Autoriser la non-concordance des statuts"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Permettre la fusion d'articles en stock ayant des codes de statut différents"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Au moins deux articles en stock doivent être fournis"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Pas de changement"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Valeur de la clé primaire StockItem"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "L'article n'est plus en stock"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Notes sur les transactions boursières"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Notes sur les transactions boursières"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "Numéro de série suivant"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "Numéro de série précédent"
@@ -9919,7 +9943,7 @@ msgstr "Droits"
msgid "Important dates"
msgstr "Dates importantes"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Le jeton a été révoqué"
@@ -9927,163 +9951,163 @@ msgstr "Le jeton a été révoqué"
msgid "Token has expired"
msgstr "Le jeton a expiré"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "Jeton API"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "Jetons API"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Nom du jeton"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Nom du jeton personnalisé"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Date d'expiration du jeton"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Dernière visite"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Dernière utilisation du jeton"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Révoquée"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Droit défini"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Vue"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Droit de voir des éléments"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Ajouter"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Droit d'ajouter des éléments"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Modifier"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Droit de modifier des élément"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Supprimer"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Droit de supprimer des éléments"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "Bot"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "Interne"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Invité"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Langue"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "Langue préférée de l'utilisateur"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "Thème"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "Paramètres pour l'interface web sous forme de JSON - ne pas modifier manuellement !"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "Raccourcis"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "Paramètres des widgets du tableau de bord sous forme de JSON - ne pas modifier manuellement !"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Nom d'affichage"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "Nom d'affichage choisi pour l'utilisateur"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "Localisation"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "Intitulé de l'emploi principal ou du poste"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "Message sur le statut de l'utilisateur"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "Informations sur la localisation de l'utilisateur"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "L'utilisateur utilise activement le système"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "Coordonnées préférées de l'utilisateur"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "Type d'utilisateur"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "De quel type d'utilisateur s'agit-il ?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "Organisation"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "Organisation/affiliation principale de l'utilisateur"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "Groupe primaire"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "Groupe principal de l'utilisateur"
diff --git a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po
index 0147e1c8a0..622651df47 100644
--- a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "למשתמש אין הרשאה לצפות במוזל הזה"
@@ -65,11 +65,11 @@ msgstr "אישור כתובת אימייל"
msgid "You must type the same email each time."
msgstr "חובה לרשום את אותו אימייל בכל פעם."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr ""
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr ""
@@ -105,22 +105,22 @@ msgstr "הזן תאריך סיום"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr ""
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -164,51 +164,51 @@ msgstr ""
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr "אימייל"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "שגיאה בהפעלת אימות הפלאגין"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadata must be a python dict object"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "מטא נתונים של תוסף"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "שדה מטא נתונים של JSON, לשימוש על ידי תוספים חיצוניים"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "דפוס מעוצב בצורה לא נכונה"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "צוין מפתח פורמט לא ידוע"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "חסר מפתח פורמט נדרש"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "שדה הפניה לא יכול להיות ריק"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "הפניה חייבת להתאים לדפוס הנדרש"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "מספר האסמכתה גדול מדי"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "בחירה שגויה"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "שם"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "תיאור"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "תיאור (לא חובה)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "נתיב"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "שמות כפולים אינם יכולים להתקיים תחת אותו אב"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "הערות סימון (אופציונלי)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "נתוני ברקוד"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "נתוני ברקוד של צד שלישי"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "ברקוד Hash"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Hash ייחודי של נתוני ברקוד"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "נמצא ברקוד קיים"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "שגיאת שרת"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "נרשמה שגיאה על ידי השרת."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "המספר חייב להיות תקין"
msgid "Currency"
msgstr "מטבע"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "בחר מטבע מהאפשרויות הזמינות"
@@ -521,11 +525,11 @@ msgstr "סינית (פשוטה)"
msgid "Chinese (Traditional)"
msgstr "סינית (מסורתית)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr "קוד מטבע לא מאושר"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr "מקור הבנייה"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "רכיב"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr ""
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr ""
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr ""
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr ""
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -883,8 +887,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr ""
@@ -900,7 +904,7 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr ""
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "משתמש"
@@ -1654,8 +1658,8 @@ msgstr "משתמש"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr ""
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1686,7 +1690,7 @@ msgstr ""
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr ""
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "קובץ מצורף"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr "שם קובץ"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "נשלח"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr "לא פורטה הפעולה"
msgid "No matching action found"
msgstr "פעולה מבוקשת לא נמצאה"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po
index 483dd78e87..641b4d51d5 100644
--- a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Language: hi_IN\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr ""
@@ -65,11 +65,11 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr ""
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr ""
@@ -105,22 +105,22 @@ msgstr "तारीख दर्ज करें"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr ""
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -164,51 +164,51 @@ msgstr ""
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "कनेक्शन त्रुटि"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr "ई-मेल"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr ""
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr ""
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr ""
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr ""
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr ""
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr ""
@@ -521,11 +525,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr ""
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr ""
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr ""
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr ""
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr ""
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -883,8 +887,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr ""
@@ -900,7 +904,7 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr ""
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr ""
@@ -1654,8 +1658,8 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr ""
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1686,7 +1690,7 @@ msgstr ""
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr ""
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr ""
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr ""
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr ""
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po
index 2ebff56325..b8f67b71d6 100644
--- a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API funkciót nem találom"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "A tételeket listában kell átadni"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Érvénytelen a tétel lista"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Minden szűrő csak true értékkel használható"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Nincs a szűrésnek megfelelő tétel"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Nincs adat megadva"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Ennek a mezőnek egyedinek kell lennie."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Nincs jogosultságod az adatok megtekintéséhez"
@@ -65,11 +65,11 @@ 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/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "A megadott elsődleges email cím nem valós."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "A megadott email domain nincs jóváhagyva."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "{original} átváltása {unit}-ra sikertelen"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Nem megfelelő mennyiség"
@@ -105,22 +105,22 @@ msgstr "Dátum megadása"
msgid "Invalid decimal value"
msgstr "Érvénytelen decimális érték"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Megjegyzések"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "A(z) '{name}' érték nem a szükséges minta szerinti"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "A megadott érték nem felel meg a szükséges mintának: "
@@ -164,51 +164,51 @@ msgstr "HTML tag-ek eltávolítása ebből az értékből"
msgid "Data contains prohibited markdown content"
msgstr "Az adatban tiltott markdown tartalom található"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Csatlakozási hiba"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "A kiszolgáló érvénytelen státuszkóddal válaszolt"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Kivétel történt"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "A kiszolgáló érvénytelen Content-Length értéket adott"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "A kép mérete túl nagy"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "A kép letöltés meghaladja a maximális méretet"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "A kiszolgáló üres választ adott"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "A megadott URL nem egy érvényes kép fájl"
@@ -220,117 +220,121 @@ msgstr "Bejelentkezés az appba"
msgid "Email"
msgstr "Email"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Mielőtt továbbmenne kötelező a kétfaktoros authentikációt engedélyeznie."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Hiba a plugin validálása közben"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "A meta adatnak egy python dict objektumnak kell lennie"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Plugin meta adatok"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON meta adat mező, külső pluginok számára"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Helytelenül formázott minta"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Ismeretlen formátum kulcs lett megadva"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Hiányzó formátum kulcs"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Az azonosító mező nem lehet üres"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Az azonosítónak egyeznie kell a mintával"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Azonosító szám túl nagy"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Érvénytelen választás"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Név"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Leírás"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Leírás (opcionális)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Elérési út"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Duplikált nevek nem lehetnek ugyanazon szülő alatt"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Markdown megjegyzések (opcionális)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Vonalkód adat"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Harmadik féltől származó vonalkód adat"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Vonalkód hash"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Egyedi vonalkód hash"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Létező vonalkód"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Kiszolgálóhiba"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "A kiszolgáló egy hibaüzenetet rögzített."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Érvényes számnak kell lennie"
msgid "Currency"
msgstr "Pénznem"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Válassz pénznemet a lehetőségek közül"
@@ -521,11 +525,11 @@ msgstr "Kínai (egyszerűsített)"
msgid "Chinese (Traditional)"
msgstr "Kínai (Hagyományos)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Frissítés elérhető"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "InvenTree frissítés elérhető"
@@ -537,7 +541,7 @@ msgstr "Érvénytelen fizikai mértékegység"
msgid "Not a valid currency code"
msgstr "Érvénytelen pénznem kód"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Rendelés állapota"
@@ -546,23 +550,23 @@ msgstr "Rendelés állapota"
msgid "Parent Build"
msgstr "Szülő gyártás"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Változatokkal együtt"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Változatokkal együtt"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Változatokkal együtt"
msgid "Part"
msgstr "Alkatrész"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Kategória"
@@ -593,7 +597,7 @@ msgstr "Kategória"
msgid "Ancestor Build"
msgstr "Szülő Gyártás"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Hozzám rendelt"
@@ -601,11 +605,11 @@ msgstr "Hozzám rendelt"
msgid "Assigned To"
msgstr "Hozzárendelve"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Ez előtt létrehozva"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Létrehozva ez után"
@@ -641,99 +645,99 @@ msgstr "Elkészült ez előtt"
msgid "Completed after"
msgstr "Elkészült ez után"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Ettől a dátumtól"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Eddig a dátumig"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Fa kihagyása"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "A gyártást be kell fejezni a törlés előtt"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Fogyóeszköz"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Opcionális"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Gyártmány"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Követett"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Ellenőrizhető"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Befejezetlen rendelés"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Lefoglalva"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Felhasználva"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Elérhető"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "Rendelve"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr "Gyártás nem található"
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Gyártási utasítás"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Hely"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Kimenet"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Szűrés a kimeneti készlet tétel azonosítójára. Használj 'null'-t ha a be nem épített gyártási tételeket keresed."
@@ -773,9 +777,9 @@ msgstr "Céldátumnak a kezdeti dátum után kell lennie"
msgid "Build Order Reference"
msgstr "Gyártási utasítás azonosító"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Vevői rendelés azonosító"
msgid "Sales Order to which this build is allocated"
msgstr "Vevői rendelés, amelyhez ez a gyártás tartozik"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Forrás hely"
@@ -821,7 +825,7 @@ msgstr "Külső gyártás"
msgid "This build order is fulfilled externally"
msgstr "Ez a gyártási rendelés külsőleg teljesül"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Cél hely"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Gyártás státusz kód"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Batch kód"
@@ -883,8 +887,8 @@ msgstr "Befejezés cél dátuma"
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:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Befejezés dátuma"
@@ -900,7 +904,7 @@ msgstr "Indí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:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Gyártási utasítás priorítása"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Projektszám"
@@ -962,9 +966,9 @@ msgstr "Gyártási kimenet nem egyezik a gyártási utasítással"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Mennyiségnek nullánál többnek kell lennie"
@@ -999,7 +1003,7 @@ msgstr "Gyártás objektum"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
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:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Készlet túlfoglalva"
@@ -1057,8 +1061,8 @@ msgstr "Készlet túlfoglalva"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Készlet tétel"
@@ -1082,7 +1086,7 @@ msgstr "Cél készlet tétel"
msgid "Build Level"
msgstr "Gyártási Szint"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Alkatrész neve"
@@ -1139,7 +1143,7 @@ msgstr "Sorozatszámok automatikus hozzárendelése"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Szükséges tételek automatikus hozzárendelése a megfelelő sorozatszámokkal"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "A következő sorozatszámok már léteznek vagy nem megfelelőek"
@@ -1273,7 +1277,7 @@ msgstr "Gyártás sor tétel"
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:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "A tételnek kell legyen készlete"
@@ -1386,8 +1390,8 @@ msgstr "Beépítés helye"
msgid "Build"
msgstr "Gyártás"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Beszállítói alkatrész"
@@ -1417,24 +1421,24 @@ msgid "Allow Variants"
msgstr "Változatok"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Alkatrészjegyzék tétel"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "Gyártásban"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "Gyártás Ütemezve"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Külső raktárkészlet"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Elérhető készlet"
@@ -1528,31 +1532,31 @@ msgstr "Késésben lévő gyártás"
msgid "Build order {bo} is now overdue"
msgstr "A {bo} gyártás most már késésben van"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "Ez egy hivatkozás"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "Ez egy állomány"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "A felhasználó nem jogosult ezen mellékletek törlésére"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "A felhasználó nem jogosult ezen melléklet törlésére"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Választéklista lezárva"
@@ -1572,8 +1576,8 @@ msgstr "Hiányzó érvényes valuta kód"
msgid "No plugin"
msgstr "Nincsen plugin"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1646,8 +1650,8 @@ msgstr "Kulcs string egyedi kell legyen"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Felhasználó"
@@ -1655,8 +1659,8 @@ msgstr "Felhasználó"
msgid "Price break quantity"
msgstr "Ársáv mennyiség"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Ár"
@@ -1678,8 +1682,8 @@ msgstr "Webhook neve"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktív"
@@ -1687,7 +1691,7 @@ msgstr "Aktív"
msgid "Is this webhook active"
msgstr "Aktív-e ez a webhook"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token"
@@ -1757,7 +1761,7 @@ msgstr "Cím"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1827,7 +1831,7 @@ msgstr "Definíció"
msgid "Unit definition"
msgstr "Mértékegység definíció"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Melléklet"
@@ -1945,7 +1949,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "Az állapot logikai kulcsa amely megegyezik az üzleti logika egyedi állapotával"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Érték"
@@ -2173,7 +2177,7 @@ msgstr "Választható lehetőségek (vesszővel elválasztva)"
msgid "Selection list for this parameter"
msgstr "A paraméter választéklistája"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Engedélyezve"
@@ -2205,8 +2209,8 @@ msgstr "Modell ID"
msgid "ID of the target model for this parameter"
msgstr "A célmodell azonosítója ehhez a paraméterhez"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Sablon"
@@ -2263,7 +2267,7 @@ msgstr "Vonalkód beolvasás dátuma és ideje"
msgid "URL endpoint which processed the barcode"
msgstr "Vonalkód feldolgozó URL végpont"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Kontextus"
@@ -2280,7 +2284,7 @@ msgid "Response data from the barcode scan"
msgstr "Vonalkód olvasó válasz adat"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Eredmény"
@@ -2385,7 +2389,7 @@ msgid "Email Threads"
msgstr "Email szálak"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Kulcs"
@@ -2431,7 +2435,7 @@ msgstr "{verbose_name} megszakítva"
msgid "A order that is assigned to you was canceled"
msgstr "Egy hozzád rendelt megrendelés megszakítva"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Készlet érkezett"
@@ -2525,7 +2529,7 @@ msgstr "Fájlnév"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Modell típusa"
@@ -2670,8 +2674,8 @@ msgstr "Milyen gyakran frissítse az árfolyamokat (nulla a kikapcsoláshoz)"
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "nap"
@@ -2915,8 +2919,8 @@ msgstr "Alkatrészek alapból sablon alkatrészek legyenek"
msgid "Parts can be assembled from other components by default"
msgstr "Alkatrészeket alapból lehessen gyártani másik alkatrészekből"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Összetevő"
@@ -2932,7 +2936,7 @@ msgstr "Beszerezhető"
msgid "Parts are purchaseable by default"
msgstr "Alkatrészek alapból beszerezhetők legyenek"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Értékesíthető"
@@ -3145,7 +3149,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Jelentések generálása közben jelentkező hibák naplózása"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Lapméret"
@@ -3274,538 +3278,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Lehet-e olyan készleteket mozgatni készlethelyek között amik nincsenek raktáron"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Gyártási utasítás azonosító minta"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
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/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Felelős tulajdonos szükséges"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Minden rendeléshez felelőst kell rendelni"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Szükséges Aktív Alkatrész"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Inaktív alkatrészekre nem lehet Gyártási Rendelést létrehozni"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Elvárás a Lezárt Alkatrész"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Megakadályozza, hogy nem lezárt alkatrészekre gyártási rendelést lehessen indítani"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "Jóváhagyott Alkatrészjegyzék Kötelező"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Megakadályozza gyártási rendelés készítését ha nincsen az Alkatrészjegyzék jóváhagyva"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "Leszármazott Gyártásoknak Lezártnak Kell Lennie"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Amíg minden leszármazott gyártás le nincsen zárva nem lehet a szülő gyártást lezárni"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "Külső Gyártási Rendelések"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "Engedélyezze a külső gyártási rendelés funkciót"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Blokkolás a tesztek sikeres végrehajtásáig"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Nem lehet gyártási tételt befejezni amíg valamennyi kötelező teszt sikeres nem lett"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Visszavétel engedélyezése"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Visszavételek engedélyezése a felületen"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Visszavétel azonosító minta"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Szükséges minta a visszavétel azonosító mező előállításához"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Befejezett visszavétel szerkesztése"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Visszavétel szerkesztésének engedélyezése befejezés után"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Vevői rendelés azonosító minta"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
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/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Vevői rendeléshez alapértelmezett szállítmány"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Szállítmány automatikus létrehozása az új vevő rendelésekhez"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Befejezett vevői rendelés szerkesztése"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Vevői rendelések szerkesztésének engedélyezése szállítás vagy befejezés után"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "Szállítmány Ellenőrzést Igényel"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "Megakadályozza a szállítmányok befejezését, amíg a tételeket nem ellenőrizték"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Leszállított Rendelések Készre jelölése"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Leszállítottnak jelölt Értékesítési rendelések automatikusan Kész-re lesznek állítva, a \"Leszállított\" állapot átugrásával"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Beszerzési rendelés azonosító minta"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
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/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Befejezett beszerzési rendelés szerkesztése"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Beszérzési rendelések szerkesztésének engedélyezése kiküldés vagy befejezés után"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Jelenlegi pénznem"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "Tétel érték bázis-pénznemre váltása készlet beérkezéskor"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Beszerzési rendelések automatikus befejezése"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "A beszerzési rendelés automatikus befejezése ha minden sortétel beérkezett"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Elfelejtett jelszó engedélyezése"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Elfelejtett jelszó funkció engedélyezése a bejentkező oldalon"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Regisztráció engedélyezése"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
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/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "SSO engedélyezése"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "SSO engedélyezése a bejelentkező oldalon"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "SSO regisztráció engedélyezése"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Felhaszálók önkéntes regisztrációjának engedélyezése SSO-n keresztül a bejelentkező oldalon"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "SSO csoport szinkronizálás engedélyezése"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Az InvenTree csoportok szinkronizálása a hitelesítésszolgáltatóhoz"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "SSO csoport kulcs"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "A csoportkérés tulajdonság neve amit a hitelesítésszolgáltató nyújt"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "SSO csoport hozzárendelés"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "Az SSO csoportok hozzárendelése az InvenTree csoportokhoz. Ha a helyi csoport nem létezik, létre lesz hozva."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Az SSO-n kívüli csoportok eltávolítása"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "Ha egy felhasználóhoz rendelt csoport nem létezik az azonosításszolgáltatóban azt eltávolítsuk el. Ennek a kikapcsolása biztonsági problémákhoz vezethet"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Email szükséges"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Kötelező email megadás regisztrációkor"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "SSO felhasználók automatikus kitöltése"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Felhasználó adatainak automatikus kitöltése az SSO fiókadatokból"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Email kétszer"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
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/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Jelszó kétszer"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Regisztráláskor kétszer kérdezze a felhasználó jelszavát"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Engedélyezett domainek"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Feliratkozás korlátozása megadott domain-ekre (vesszővel elválasztva, @-al kezdve)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Csoport regisztráláskor"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Ehhez a csoporthoz lesznek az új felhasználók rendelve. Ha az SSO csoport szinkronizálás engedélyezve van, akkor ez a csoport csak akkor lesz hozzárendelve a felhasználóhoz ha az azonosítás szolgáltató semmilyen csoportot nem rendelt hozzá."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Többfaktoros hitelesítés kényszerítése"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "A felhasználóknak többfaktoros hitelesítést kell használniuk."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Pluginok ellenőrzése indításkor"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Ellenőrizze induláskor hogy minden plugin telepítve van - engedélyezd konténer környezetben (docker)"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Plugin frissítések ellenőrzése"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Frissítések periódikus ellenőrzésének engedélyezése a telepített pluginokra"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "URL integráció engedélyezése"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "URL útvonalalak hozzáadásának engedélyezése a pluginok számára"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Navigációs integráció engedélyezése"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Navigációs integráció engedélyezése a pluginok számára"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "App integráció engedélyezése"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "App hozzáadásának engedélyezése a pluginok számára"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Ütemezés integráció engedélyezése"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
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/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Esemény integráció engedélyezése"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Interfész integráció engedélyezése"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Pluginok felhasználói felületbe épülésének engedélyezése"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "Email integráció engedélyezése"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "Pluginok bejövő/kimenő levelekhez hozzáférésének engedélyezése"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "Projektszámok engedélyezése"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Projectek nyomkövetéséhez projekt kódok engedélyezése"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "A készletek korábbi mennyiségének és értékének naplózásának engedélyezés"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Külső helyek nélkül"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Automatikus leltár időpontja"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr "Készlettörténet törlési gyakoriság"
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Felhasználók teljes nevének megjelenítése"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Felhasználói név helyett a felhasználók teljes neve jelenik meg"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "Felhasználói profilok megjelenítése"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "Felhasználói profilok megjelenítése a profil oldalukon"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Teszt állomás adatok engedélyezése"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Tesztállomás adatok gyűjtésének teszt eredménybe gyűjtésének engedélyezése"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "Gép Ping Engedélyezése"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "Időszakos ping feladat engedélyezése a regisztrált gépekhez az állapotuk ellenőrzésére"
@@ -4129,49 +4141,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "Minden modell"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "A melléklethez nem tartozik model típus"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Érvénytelen melléklet model típus"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "A legkisebb helyiérték nem lehet nagyobb mint a legnagyobb helyiérték"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "A legnagyobb helyiérték nem lehet kisebb mint a legkisebb helyiérték"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Üres domain nem engedélyezett."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Érvénytelen domain név: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "Csupa nagybetűs kell"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "Az érték egy változó neve legyen"
@@ -4200,12 +4212,12 @@ msgid "Supplier is Active"
msgstr "A Beszállító Aktív"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Gyártó"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Cég"
@@ -4246,7 +4258,7 @@ msgid "Contact email address"
msgstr "Kapcsolattartó email címe"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Névjegy"
@@ -4298,7 +4310,7 @@ msgstr "Adószám"
msgid "Company Tax ID"
msgstr "Céges adószám"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Cím"
@@ -4391,7 +4403,7 @@ msgid "Link to address information (external)"
msgstr "Link a címinformációkhoz (külső)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Gyártói alkatrész"
@@ -4409,7 +4421,7 @@ msgid "Select manufacturer"
msgstr "Gyártó kiválasztása"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "MPN (Gyártói cikkszám)"
@@ -4438,10 +4450,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Kapcsolódó gyártói alkatrésznek ugyanarra a kiindulási alkatrészre kell hivatkoznia"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Beszállító"
@@ -4449,7 +4461,7 @@ msgstr "Beszállító"
msgid "Select supplier"
msgstr "Beszállító kiválasztása"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Beszállítói cikkszám"
@@ -4486,7 +4498,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimális díj (pl. tárolási díj)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Csomagolás"
@@ -4534,7 +4546,7 @@ msgstr "Beszállító által használt alapértelmezett pénznem"
msgid "Company Name"
msgstr "Cégnév"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Készleten"
@@ -4723,7 +4735,7 @@ msgstr "Eredeti sor adat"
msgid "Errors"
msgstr "Hibák"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Érvényes"
@@ -4839,7 +4851,7 @@ msgstr "Címkénkénti nyomtatandó mennyiség"
msgid "Connected"
msgstr "Csatlakoztatba"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Ismeretlen"
@@ -4943,7 +4955,7 @@ msgstr "A tulajdonság kulcsa"
msgid "Value of the property"
msgstr "A tulajdonság értéke"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Csoport"
@@ -4967,118 +4979,118 @@ msgstr "Maximális Előrehaladás"
msgid "Maximum value for progress type, required if type=progress"
msgstr "Maximális érték az előrehaladás típushoz, kötelező ha típus=előrehaladás"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Rendelés azonosítója"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Kintlévő"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Van projektszáma"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Készítette"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Ez előtt létrehozva"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Létrehozva ez után"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "Van kezdeti dátum"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "Kezdeti dátum ez előtt"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "Kezdeti dátum ez után"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "Van céldátum"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Céldátum ez előtt"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Céldátum ez után"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Van árazás"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Ez előtt befejezve"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Befejezve ez után"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "Külső Gyártási Rendelés"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Rendelés"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "A rendelés teljesítve"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Belső alkatrész"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "A rendelés függőben"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Kész"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Van kiszállítás"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Beszerzési rendelés"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5086,14 +5098,14 @@ msgstr "Beszerzési rendelés"
msgid "Sales Order"
msgstr "Vevői rendelés"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Visszavétel"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5136,11 +5148,11 @@ msgstr "A cím nem egyezik a kiválasztott vállalattal"
msgid "Order description (optional)"
msgstr "Rendelés leírása (opcionális)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Válassz projektszámot ehhez a rendeléshez"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Link külső weboldalra"
@@ -5152,7 +5164,7 @@ msgstr "Kezdés dátuma"
msgid "Scheduled start date for this order"
msgstr "A tervezett kezdeti dátum ehhez a gyártáshoz"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Cél dátum"
@@ -5185,487 +5197,487 @@ msgstr "Kapcsolattartó ehhez a rendeléshez"
msgid "Company address for this order"
msgstr "Cég címei ehhez a rendeléshez"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Rendelés azonosító"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Állapot"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Beszerzési rendelés állapota"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Cég akitől a tételek beszerzésre kerülnek"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Beszállítói azonosító"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Beszállítói rendelés azonosító kód"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "érkeztette"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Rendelés teljesítési dátuma"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Cél"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Beérkezett tételek tárolója"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Az alkatrész beszállítója meg kell egyezzen a beszerzési rendelés beszállítójával"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Sortétel nem egyezik a beszerzési megrendeléssel"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "Sortételen hiányzik a kapcsolódó alkatrész"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Mennyiség pozitív kell legyen"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Vevő"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Cég akinek a tételek értékesítésre kerülnek"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Értékesítési rendelés állapot"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Vevői azonosító "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Megrendelés azonosító kódja a vevőnél"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Kiszállítás dátuma"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "szállította"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "Rendelés már teljesítve"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "Rendelés már visszavonva"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Csak nyitott rendelés jelölhető késznek"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "A rendelés nem jelölhető késznek mivel függő szállítmányok vannak"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "A rendelést nem lehet befejezni mert hiányos foglalások vannak"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "A rendelés nem jelölhető késznek mivel nem teljesített sortételek vannak"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "A rendelés le van zárva és nem lehet módosítani"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Tétel mennyiség"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Sortétel azonosító"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Sortétel megjegyzései"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Cél dátuma ennek a sortételnek (hagyd üresen a rendelés céldátum használatához)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Sortétel leírása (opcionális)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "További kontextus ehhez a sorhoz"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Egységár"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "Vevői Rendelés Sortétel"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "Beszállítói alkatrésznek egyeznie kell a beszállítóval"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "Gyártási rendelést külsőnek kell jelölni"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "Gyártási rendeléseket csak összeszerelhető alkatrészekhez lehet kapcsolni"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "Gyártási rendelés alkatrészének meg kell egyeznie a sortétel alkatrésszel"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Beszállítói alkatrész"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Beérkezett"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Érkezett tételek száma"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Beszerzési ár"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Beszerzési egységár"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "Külső gyártási rendelés amit ez a sortétel teljesít"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "Vevői Rendelés Extra Sor"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "Vevői Rendelés Sortétel"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Csak értékesíthető alkatrészeket lehet vevői rendeléshez adni"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Eladási ár"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Eladási egységár"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Kiszállítva"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Szállított mennyiség"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "Vevői Rendelés Szállítása"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "A szállítási címnek egyeznie kell az ügyféllel"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "Szállítási cím ehhez a szállítmányhoz"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Szállítás dátuma"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Szállítási dátum"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Kézbesítés dátuma"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Ellenőrizte"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Felhasználó aki ellenőrizte ezt a szállítmányt"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Szállítmány"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Szállítmány száma"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Nyomkövetési szám"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Szállítmány nyomkövetési információ"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Számlaszám"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Hozzátartozó számla referencia száma"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Szállítmány már elküldve"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Szállítmány nem tartalmaz foglalt készlet tételeket"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "A szállítmányt ellenőrizni kell, mielőtt befejezhetné"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "Vevői Rendelés Extra Sor"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "Vevői rendeléshez foglalások"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "Készlet tétel nincs hozzárendelve"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Nem foglalható készlet egy másik fajta alkatrész sortételéhez"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Nem foglalható készlet egy olyan sorhoz amiben nincs alkatrész"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "A lefoglalandó mennyiség nem haladhatja meg a készlet mennyiségét"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Vevői rendelés nem egyezik a szállítmánnyal"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Szállítmány nem egyezik a vevői rendeléssel"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Sor"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Vevői rendelés szállítmány azonosító"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Tétel"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Válaszd ki a foglalásra szánt készlet tételt"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Készlet foglalási mennyiség megadása"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Visszavétel azonosító"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Cég akitől a tételek visszavételre kerülnek"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Visszavétel állapota"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "Visszavétel sortétel"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "Készlettételt meg kell adni"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "Visszavétel mennyisége meghaladja a készletet"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "Visszavétel mennyisége nullánál nagyobb kell, hogy legyen"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Érvénytelen mennyiség szerializált készlettételnél"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Válaszd ki a vevőtől visszavenni kívánt tételt"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Visszavétel dátuma"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Kimenetel"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Sortétel végső kimenetele"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Sortétel visszaküldésének vagy javításának költsége"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "Visszavétel extra tétel"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5693,7 +5705,7 @@ msgstr "Extra sorok másolása"
msgid "Copy extra line items from the original order"
msgstr "Az eredeti rendelés extra tételeinek másolása"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Paraméterek másolása"
@@ -5785,11 +5797,11 @@ msgstr "Elemek összevonása"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Azonos forrás és cél dátumú Alkatrész tételeinek összevonása egy tételre"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "SKU (leltári azonosító)"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Belső cikkszám"
@@ -5826,7 +5838,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Írd be a batch kódját a beérkezett tételeknek"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Lejárati dátum"
@@ -6057,123 +6069,131 @@ msgstr "Lejárt visszvételi utasítás"
msgid "Return order {ro} is now overdue"
msgstr "A {ro} Visszavételi utasítás már lejárt"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Csillagozott"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Csillagozottra szűrés"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Mélység"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Kategória mélységre szűrés"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Felső szint"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Csúcs készlethelyre szűrés"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Lépcsőzetes"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Szűrt eredmények tartalmazzák az alkategóriákat"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Szülő"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Szülő kategóriára szűrés"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Az adott kategória alkategóriáinak kihagyása"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Van találat"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "Változat-e"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "Változat"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "Vannak Változatok"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "Alkatrészjegyzék ellenőrizve"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "Kaszkád Kategóriák"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "Ha igaz, tartalmazza az adott kategória alkategóriáiban lévő tételeket"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Szűrés numerikus kategória azonosító vagy a 'null' literál szerint"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "Összeállított Alkatrész ellenőrizhető"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "Összetevő alkatrész ellenőrizhető"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Használ"
@@ -6214,7 +6234,7 @@ msgstr "Ebben a kategóriában évő alkatrészek kulcsszavai alapban"
msgid "Icon"
msgstr "Ikon"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikon (opcionális)"
@@ -6350,7 +6370,7 @@ msgstr "Alkatrész kulcsszavak amik segítik a megjelenést a keresési eredmén
msgid "Part category"
msgstr "Alkatrész kategória"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN (Belső Cikkszám)"
@@ -6359,7 +6379,7 @@ msgstr "IPN (Belső Cikkszám)"
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:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Változat"
@@ -6383,7 +6403,7 @@ msgstr "Alapértelmezett lejárat"
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:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Minimális készlet"
@@ -6391,7 +6411,7 @@ msgstr "Minimális készlet"
msgid "Minimum allowed stock level"
msgstr "Minimálisan megengedett készlet mennyiség"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6632,7 +6652,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Teljes készlet a leltárkor"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Dátum"
@@ -6760,7 +6780,7 @@ msgstr "Al alkatrész"
msgid "Select part to be used in BOM"
msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6912,351 +6932,351 @@ msgstr "Szülő Kategória"
msgid "Parent part category"
msgstr "Felsőbb szintű alkatrész kategória"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Alkategóriák"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Eredmények"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Eszerint a sablon szerint rögzített eredmények száma"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Beszerzési pénzneme ennek a készlet tételnek"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "A fájl nem kép"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Eredeti alkatrész"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Válassz eredeti alkatrészt a másoláshoz"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Kép másolása"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Kép másolása az eredeti alkatrészről"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Alkatrészjegyzék másolása"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Alkatrészjegyzék másolása az eredeti alkatrészről"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Paraméterek másolása az eredeti alkatrészről"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Megjegyzések másolása"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Megjegyzések másolása az eredeti alkatrészről"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "Teszt másolása"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "Teszt sablonok másolása az eredeti alkatrészről"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Kezdeti készlet mennyiség"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Add meg a kezdeti készlet mennyiséget. Ha nulla akkor nem lesz készlet létrehozva."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Kezdeti készlet hely"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Add meg a kezdeti készlet helyét"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Válassz beszállítót (hagyd üresen ha nem kell létrehozni)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Válassz gyártót (hagyd üresen ha nem kell létrehozni)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Gyártói cikkszám"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "A kiválasztott cég nem érvényes beszállító"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "A kiválasztott cég nem érvényes gyártó"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Van már ilyen gyártói alkatrész"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Van már ilyen beszállítói alkatrész"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Kategória neve"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Gyártásban"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "Az alkatrészből jelenleg ennyi van gyártás alatt"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Már beütemezett de még nem kész gyártási mennyiség"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Készlet tételek"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Verziók"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Teljes készlet"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Nem lefoglalt készlet"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Variánsok Raktárkészlet"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Alkatrész másolása"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Kezdeti adatok másolása egy másik alkatrészről"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Kezdeti készlet"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Kezdeti készlet mennyiség létrehozása"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Beszállító információ"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Kezdeti beszállító adatok hozzáadása"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Kategória paraméterek másolása"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Paraméter sablonok másolása a kiválasztott alkatrész kategóriából"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Meglévő kép"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "A meglévő alkatrész képfájl neve"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "A képfájl nem létezik"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Teljes alkatrészjegyzék jóváhagyása"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Gyártható"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "Gyártásokhoz szükséges"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "Gyártási rendelésekhez foglalva"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "Értékesítési rendeléshez szükséges"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "Értékesítési rendeléshez lefoglalva"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Minimum ár"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Számított minimum ár felülbírálása"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Minimum ár pénzneme"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Maximum ár"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Számított maximum ár felülbírálása"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Maximum ár pénzneme"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Frissítés"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Alkatrész árak frissítése"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Megadott pénznem átváltása {default_currency}-re sikertelen"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "A Minimum ár nem lehet nagyobb mint a Maximum ár"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "A Maximum ár nem lehet kisebb mint a Minimum ár"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "Szülő összeállítás kiválasztása"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "Összetevő alkatrész kijelölése"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Válassz alkatrészt ahonnan az alkatrészjegyzéket másoljuk"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Létező adat törlése"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
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:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Örököltekkel együtt"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
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:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Hibás sorok kihagyása"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Engedély a hibás sorok kihagyására"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Helyettesítő alkatrészek másolása"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
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"
@@ -7327,91 +7347,91 @@ msgstr "Nincs megadva művelet"
msgid "No matching action found"
msgstr "Nincs egyező művelet"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Nincs egyező vonalkód"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Egyezés vonalkódra"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "Model nem támogatott"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "Model példány hiányzik"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Ez a vonalkód már egy másik tételé"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Nem található megfelelő alkatrész adat"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Nem található megfelelő beszállítói alkatrész"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Több beszállítói alkatrész található"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "Nincsen vonalkód adathoz illeszkedő plugin"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Beszállítói alkatrész található"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Ez a termék már bevételezve"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "A szállítói vonalkódhoz nincsen plugin találat"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Több egyező sortétel is található"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Nincs egyező sortétel"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Nincs értékesítési rendelés biztosítva"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Vonalkód nem egyezik egy létező készlet tétellel sem"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Készlet tétel nem egyezik a sortétellel"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Nincs elegendő"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Készlet tétel lefoglalva egy vevői rendeléshez"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Nincs elég információ"
@@ -7993,7 +8013,7 @@ msgstr "Szegély"
msgid "Print a border around each label"
msgstr "Az egyes címkék körüli margó"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Fekvő"
@@ -8073,77 +8093,77 @@ msgstr "TME vonalkódok támogatása"
msgid "The Supplier which acts as 'TME'"
msgstr "A 'TME' beszállító"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "Plugin telepítés letiltva"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Plugin telepítése sikeres"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin telepítve ide: {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "Ez a plugin nem található a tárolóban"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "A plugin nem egy csomagolt plugin"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "Plugin csomag neve nem található"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "Csak a személyzeti felhasználók adminisztrálhatják a pluginokat"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "Plugin eltávolítás letiltva"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Plugin nem eltávolítható mivel még aktív"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr "Kötelező plugint nem lehet uninstallálni"
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr "Plugin nem uninstallálható mert mintaplugin"
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr "Plugin nem uninstallálható mert beépített plugin"
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "Plugin nincs telepítve"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "Plugin telepítés nem található"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "Plugin eltávolítása sikeres"
@@ -8195,21 +8215,21 @@ msgstr "Csomag plugin"
msgid "Plugin"
msgstr "Bővítmény"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Nincs szerző"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "A '{p}' plugin nem kompatibilis az aktuális applikáció verzióval {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "A pluginhoz minimum {v} verzió kell"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "A pluginhoz maximum {v} verzió kell"
@@ -8482,136 +8502,136 @@ msgstr "Jogi információk"
msgid "Letter"
msgstr "„Letter” méret"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "Ilyen nevű Sablon fájl már létezik"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Sablon neve"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Sablon leírása"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "Verziószám (automatikusan nő)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "A nyomtatáson a modelhez kapcsolás"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Jelentés kimenetének mentése mellékletként a kapcsolt model példányhoz nyomtatáskor"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Fájlnév minta"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "Minta a fájlnevek előállításához"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "Sablon engedélyezve"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "A sablon által célzott model típus"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Szűrők"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "Sablon lekérdezés szűrők (vesszővel elválasztott kulcs=érték párok)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Sablon file"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Lapméret a PDF riportokhoz"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Jelentés fekvő nézetben"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "Összevonás"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr "Jelentés renderelése a kiválasztott tételekhez"
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "Jelentés a {self.name} sablon alapján"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr "Szintaxis hiba a sablonban"
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr "Hiba a jelentés renderelésekor"
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "Hiba a jelentés generálása során"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr "Hiba a jelentés kimenetének összefésülése során"
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Szélesség [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Címke szélessége, mm-ben"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Magasság [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Címke magassága, mm-ben"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "Címkenyomtatási hiba"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Részlet"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Riport részlet fájl"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Részlet fájl leírása"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Eszköz"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Riport asset fájl"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Asset fájl leírása"
@@ -8767,200 +8787,200 @@ msgstr "Nincs eredmény"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "A képfile nem található"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "part_image elem csak alkatrész példánynál használható"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "company_image elem csak cég példánynál használható"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "Hely mélységre szűrés"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "Csúcs készlethelyre szűrés"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "Szűrt eredmények tartalmazzák az alhelyeket"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Szülő hely"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Szülő helyre szűrés"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Alkatrész neve (kisbetű/nagybetű nem számít)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "Az alkatrész neve tartalmazza (kisbetű/nagybetű nem számít)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Alkatrész neve (regex)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "Alkatrész IPN (kisbetű/nagybetű nem számít)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "Alkatrész IPN tartalmazza (kisbetű/nagybetű nem számít)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "Alkatrész IPN (regexp)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Minimális készlet"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Maximális készlet"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Státuszkód"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Külső hely"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "Felhasználva Gyártási Rendelésben"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "Más készlettételbe beépítve"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Alkatrész fa"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Módosítva ezelőtt"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Frissítve ez után"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Leltárazva ezelőtt"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Leltárazva ezután"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Lejárat előtt"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Lejárat után"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Állott"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr "Adj meg egy készlettétel azonosítót - PK-t - hogy a tétel és leszármazottai kihagyásához"
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr "Készlethelyek alábontása"
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr "Az al-készlethelyeket is beleértve"
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr "Készlethely azonosító alapján szűrés vagy a 'null'-ra"
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Mennyiség megadása kötelező"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Egy érvényes alkatrészt meg kell adni"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "A megadott beszállítói alkatrész nem létezik"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "A beszállítói alkatrészhez van megadva csomagolási mennyiség, de a use_pack_size flag nincs beállítva"
-#: stock/api.py:1195
+#: stock/api.py:1209
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/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr "Beépítettek Belefoglalása"
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr "Ha igaz, tartalmazza a megadott készlettétel alá beépített tételek teszteredményeit"
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr "Szűrés numerikus készlettétel azonosító szerint"
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr "A(z) {id} azonosítójú készlettétel nem létezik"
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8996,7 +9016,7 @@ msgstr "Tulajdonos kiválasztása"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "A szerkezeti raktári helyekre nem lehet direktben raktározni, csak az al-helyekre."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Külső"
@@ -9102,7 +9122,7 @@ msgstr "Válassz egy egyező beszállítói alkatrészt ehhez a készlet tételh
msgid "Where is this stock item located?"
msgstr "Hol található ez az alkatrész?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "A csomagolása ennek a készlet tételnek itt van tárolva"
@@ -9118,7 +9138,7 @@ msgstr "Ez a tétel be van építve egy másik tételbe?"
msgid "Serial number for this item"
msgstr "Sorozatszám ehhez a tételhez"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Batch kód ehhez a készlet tételhez"
@@ -9207,7 +9227,7 @@ msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával"
msgid "Cannot assign stock to structural location"
msgstr "Nem lehet készletet strukturális helyre rendelni"
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "Ez a Teszt sablon nem létezik"
@@ -9227,7 +9247,7 @@ msgstr "A készlet tétel más tételeket tartalmaz"
msgid "Stock item has been assigned to a customer"
msgstr "Készlet tétel hozzárendelve egy vevőhöz"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Készlet tétel gyártás alatt"
@@ -9235,7 +9255,7 @@ msgstr "Készlet tétel gyártás alatt"
msgid "Serialized stock cannot be merged"
msgstr "Követésre kötelezett készlet nem vonható össze"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Duplikált készlet tételek vannak"
@@ -9251,71 +9271,71 @@ msgstr "A készlet tétel ugyanarra a beszállítói alkatrészre kell vonatkozz
msgid "Stock status codes must match"
msgstr "Készlet tételek állapotainak egyeznie kell"
-#: stock/models.py:2503
+#: stock/models.py:2558
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:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "Készlettörténet"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Bejegyzés megjegyzései"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "Készlet Tétel Ellenőrzés Eredménye"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Ehhez a teszthez meg kell adni értéket"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Ehhez a teszthez fel kell tölteni mellékletet"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "A teszt eredménye érvénytelen"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Teszt eredménye"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Teszt kimeneti értéke"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Teszt eredmény melléklet"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Tesztek megjegyzései"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "Teszt állomás"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "A tesztet elvégző tesztállomás azonosítója"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Elkezdődött"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "A teszt indításának időpontja"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Befejezve"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "A teszt befejezésének időpontja"
@@ -9399,7 +9419,7 @@ msgstr "Írd be a sorozatszámokat az új tételekhez"
msgid "Supplier Part Number"
msgstr "Beszállítói Cikkszám"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Lejárt"
@@ -9429,8 +9449,8 @@ msgstr "Nincsen készlettétel megadva"
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:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Cél készlet hely"
@@ -9502,127 +9522,131 @@ msgstr "Válaszd ki a státuszváltásra szánt készlet tételeket"
msgid "No stock items selected"
msgstr "Nincs készlet tétel kiválasztva"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Alhelyek"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "Felsőbb szintű készlet hely"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Az alkatrésznek értékesíthetőnek kell lennie"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "A tétel egy vevő rendeléshez foglalt"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "A tétel egy gyártási utasításhoz foglalt"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Vevő akihez rendeljük a készlet tételeket"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "A kiválasztott cég nem egy vevő"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Készlet hozzárendelés megjegyzései"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "A készlet tételek listáját meg kell adni"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Készlet összevonás megjegyzései"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Nem egyező beszállítók megengedése"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Különböző beszállítói alkatrészekből származó készletek összevonásának engedélyezése"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Nem egyező állapotok megjelenítése"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Különböző állapotú készletek összevonásának engedélyezése"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Legalább két készlet tételt meg kell adni"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Nincs változás"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Készlet tétel elsődleges kulcs értéke"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "Készlettétel nincs készleten"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr "Készlettétel már készleten van"
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr "Mennyiség nem lehet negatív"
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Készlet tranzakció megjegyzései"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr "Meglévő készletbe olvasztás"
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Készlet tranzakció megjegyzései"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr "Visszaérkezett tételek beolvasztása a készlettételekbe ha lehetséges"
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "Következő sorozatszám"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "Előző Sorozatszám"
@@ -9920,7 +9944,7 @@ msgstr "Jogosultságok"
msgid "Important dates"
msgstr "Fontos dátumok"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "A token visszavonva"
@@ -9928,163 +9952,163 @@ msgstr "A token visszavonva"
msgid "Token has expired"
msgstr "A token lejárt"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API Token"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API Tokenek"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Token név"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Egyedi token név"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Token lejárati dátum"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Utolsó tevékenység"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Token utolsó használata"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Visszavonva"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Jogosultságok"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Nézet"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Jogosultság tételek megtekintéséhez"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Hozzáad"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Jogosultság tételek hozzáadásához"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Módosítás"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Jogosultság tételek szerkesztéséhez"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Törlés"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Jogosultság tételek törléséhez"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "Robot"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "Belső"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Vendég"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Nyelv"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "Felhasználó által preferált nyelv"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "Téma"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "Web UI JSON beállításai - kézzel nem szabad szerkeszteni!"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "Widgetek"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "Dashboard widgetek JSON beállításai - kézzel szerkeszteni tilos!"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Megjelenítendő név"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "Felhasználó választott megjelenítési neve"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "Pozíció"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "Fő munkakör vagy pozíció"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "Felhasználói állapot üzenet"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "Felhasználó földrajzi helye"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "A felhasználó éppen használja a rendszert"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "Javasolt elérhetőségek"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "Felhasználó típusa"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "Milyen típusú ez a felhasználó?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "Szervezet"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "Felhasználó elsődleges szervezete/kötődése"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "Elsődleges csoport"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "Felhasználó elsődleges csoportja"
diff --git a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po
index cd58619479..f671dee065 100644
--- a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API endpoint tidak ditemukan"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Barang harus disediakan sebagai daftar"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Pengguna tidak memiliki izin untuk melihat model ini"
@@ -65,11 +65,11 @@ msgstr "Konfirmasi alamat email"
msgid "You must type the same email each time."
msgstr "Masukkan email yang sama."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Alamat surel utama yang diberikan tidak valid."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Domain surel yang diberikan tidak perbolehkan."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Jumlah yang diberikan tidak valid"
@@ -105,22 +105,22 @@ msgstr "Masukkan tanggal"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Catatan"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Nilai yang diberikan tidak sesuai dengan pola yang ditentukan: "
@@ -164,51 +164,51 @@ msgstr "Hapus tag-tag HTML dari nilai ini"
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Koneksi Galat"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Ukuran gambar terlalu besar"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "URL yang diberikan bukan file gambar yang valid"
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr "Surel"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Anda harus mengaktifkan autentikasi dua faktor sebelum melakukan hal lainnya."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr ""
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Pilihan tidak valid"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Nama"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Keterangan"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Keterangan (opsional)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Direktori"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Data Barcode"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Data barcode pihak ketiga"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Hash unik data barcode"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Sudah ada barcode yang sama"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Terjadi Kesalahan Server"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Sebuah kesalahan telah dicatat oleh server."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Harus berupa angka yang valid"
msgid "Currency"
msgstr "Mata Uang"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr ""
@@ -521,11 +525,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr "Bukan kode mata uang yang valid"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr "Produksi Induk"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "Bagian"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Pesanan harus dibatalkan sebelum dapat dihapus"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr ""
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Tersedia"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Order Produksi"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Lokasi"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Referensi Order Produksi"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Referensi Order Penjualan"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Lokasi Sumber"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Lokasi Tujuan"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Kode status pembuatan"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Kode Kelompok"
@@ -883,8 +887,8 @@ msgstr "Target tanggal selesai"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Target tanggal selesai produksi. Produksi akan menjadi terlambat setelah tanggal ini."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Tanggal selesai"
@@ -900,7 +904,7 @@ msgstr "Diserahkan oleh"
msgid "User who issued this build order"
msgstr "Pengguna yang menyerahkan order ini"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr "Hasil produksi tidak sesuai dengan order produksi"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Jumlah harus lebih besar daripada nol"
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Jumlah harus 1 untuk stok dengan nomor seri"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Item stok teralokasikan terlalu banyak"
@@ -1057,8 +1061,8 @@ msgstr "Item stok teralokasikan terlalu banyak"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Stok Item"
@@ -1082,7 +1086,7 @@ msgstr "Tujuan stok item"
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr "Alokasikan nomor seri secara otomatis"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Alokasikan item yang diperlukan dengan nomor seri yang sesuai secara otomatis"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Nomor-nomor seri berikut sudah ada atau tidak valid"
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part harus mengarah ke bagian yang sesuai dengan order produksi"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Item harus tersedia dalam stok"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Item tagihan material"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Pengguna"
@@ -1654,8 +1658,8 @@ msgstr "Pengguna"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Harga"
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktif"
@@ -1686,7 +1690,7 @@ msgstr "Aktif"
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr "Judul"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Lampiran"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Aktif"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Barang diterima"
@@ -2524,7 +2528,7 @@ msgstr "Nama File"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "Hari"
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Komponen"
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Ukuran Halaman"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Surel diperlukan"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Aktifkan Integrasi Antarmuka"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Perusahaan"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Kontak alamat surel"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Kontak"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Tidak diketahui"
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Selesai"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Status"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Pelanggan"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Harga Jual"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Dikirim"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Jumlah yang dialokasikan harus lebih dari nol"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Tanggal"
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Harga Minimal"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Harga Maksimal"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Perbarui"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr "Tidak ada tindakan yang ditentukan"
msgid "No matching action found"
msgstr "Aksi tidak ditemukan"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Tidak cukup informasi"
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr "Legal"
msgid "Letter"
msgstr "Letter"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Lampiran perlu diunggah untuk tes ini"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr "Token telah kadaluarsa"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Nama Token"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Terakhir diliat"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Ganti"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po
index a1475ea899..10d15adb82 100644
--- a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "Endpoint API non trovato"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Gli articoli devono essere forniti come elenco"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Lista elementi fornita non valida"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Tutti i filtri devono essere usati solo con true"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Nessun elemento corrisponde ai criteri forniti"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Nessun dato fornito"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Questo campo deve essere unico."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "L'utente non ha i permessi per vedere questo modello"
@@ -65,11 +65,11 @@ msgstr "Conferma indirizzo email"
msgid "You must type the same email each time."
msgstr "È necessario digitare la stessa e-mail ogni volta."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "L'indirizzo email principale fornito non è valido."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "L'indirizzo di posta elettronica fornito non è approvato."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Impossibile convertire {original} in {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Quantità inserita non valida"
@@ -105,22 +105,22 @@ msgstr "Inserisci la data"
msgid "Invalid decimal value"
msgstr "Valore decimale non valido"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Note"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Il valore '{name}' non è nel formato del pattern"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Il valore fornito non corrisponde al modello richiesto: "
@@ -164,51 +164,51 @@ msgstr "Rimuovi i tag HTML da questo valore"
msgid "Data contains prohibited markdown content"
msgstr "I dati contengono un contenuto in markdown proibito"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Errore di connessione"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Il server ha risposto con un codice di stato non valido"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Si è verificata un'eccezione"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Il server ha risposto con valore Content-Length non valido"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Immagine troppo grande"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Il download dell'immagine ha superato la dimensione massima"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Il server remoto ha restituito una risposta vuota"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "L'URL fornito non è un file immagine valido"
@@ -220,117 +220,121 @@ msgstr "Accedi all'app"
msgid "Email"
msgstr "Email"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Devi abilitare l'autenticazione a due fattori prima di fare qualsiasi altra cosa."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Errore nell'eseguire la convalida del plugin"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "I metadati devono essere un oggetto python dict"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Metadati Plugin"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Campo di metadati JSON, da utilizzare con plugin esterni"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Schema formattato impropriamente"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Formato chiave sconosciuta"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Formato chiave mancante"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Il campo di riferimento non può essere vuoto"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Il campo deve corrispondere al modello richiesto"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Numero di riferimento troppo grande"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Scelta non valida"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Nome"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Descrizione"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Descrizione (opzionale)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Percorso"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Nomi duplicati non possono esistere sotto lo stesso genitore"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Note di Markdown (opzionale)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Dati del Codice a Barre"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Dati Codice a Barre applicazioni di terze parti"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Codice a Barre"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Codice univoco del codice a barre"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Trovato codice a barre esistente"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Errore del server"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Un errore è stato loggato dal server."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Deve essere un numero valido"
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Selezionare la valuta dalle opzioni disponibili"
@@ -521,11 +525,11 @@ msgstr "Cinese (Semplificato)"
msgid "Chinese (Traditional)"
msgstr "Cinese (Tradizionale)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Aggiornamento disponibile"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "È disponibile un aggiornamento per InvenTree"
@@ -537,7 +541,7 @@ msgstr "Unità fisica non valida"
msgid "Not a valid currency code"
msgstr "Non è un codice valuta valido"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Stato dell'ordine"
@@ -546,23 +550,23 @@ msgstr "Stato dell'ordine"
msgid "Parent Build"
msgstr "Produzione Genitore"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Includi Varianti"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Includi Varianti"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Includi Varianti"
msgid "Part"
msgstr "Articolo"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Categoria"
@@ -593,7 +597,7 @@ msgstr "Categoria"
msgid "Ancestor Build"
msgstr "Produzione Antenata"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Assegnato a me"
@@ -601,11 +605,11 @@ msgstr "Assegnato a me"
msgid "Assigned To"
msgstr "Assegnato a"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Creato prima"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Creato dopo"
@@ -641,99 +645,99 @@ msgstr "Completato prima"
msgid "Completed after"
msgstr "Completato dopo"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Data minima"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Data massima"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Escludi Albero"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "La produzione deve essere annullata prima di poter essere eliminata"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Consumabile"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Opzionale"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Assemblaggio"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Monitorato"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Testabile"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Ordine In Corso"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Allocato"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Utilizzato"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponibile"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "Ordinato"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Ordine di Produzione"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Posizione"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Output"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Filtra per ID articolo stock di output. Usa 'null' per trovare elementi di produzione disinstallati."
@@ -773,9 +777,9 @@ msgstr "La data di scadenza deve essere successiva alla data d'inizio"
msgid "Build Order Reference"
msgstr "Riferimento Ordine Di Produzione"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Numero di riferimento ordine di vendita"
msgid "Sales Order to which this build is allocated"
msgstr "Ordine di vendita a cui questa produzione viene assegnata"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Posizione Di Origine"
@@ -821,7 +825,7 @@ msgstr "Build Esterno"
msgid "This build order is fulfilled externally"
msgstr "Questo ordine di produzione è eseguito esternamente"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Posizione Della Destinazione"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Codice stato di produzione"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Codice Lotto"
@@ -883,8 +887,8 @@ msgstr "Data completamento obiettivo"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Data di completamento della produzione. Dopo tale data la produzione sarà in ritardo."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Data di completamento"
@@ -900,7 +904,7 @@ msgstr "Rilasciato da"
msgid "User who issued this build order"
msgstr "Utente che ha emesso questo ordine di costruzione"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Priorità di questo ordine di produzione"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Codice del progetto"
@@ -962,9 +966,9 @@ msgstr "L'output della produzione non corrisponde all'ordine di compilazione"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "La quantità deve essere maggiore di zero"
@@ -999,7 +1003,7 @@ msgstr "Crea oggetto"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "La quantità deve essere 1 per lo stock serializzato"
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:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "L'articolo in giacenza è sovrallocato"
@@ -1057,8 +1061,8 @@ msgstr "L'articolo in giacenza è sovrallocato"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Articoli in magazzino"
@@ -1082,7 +1086,7 @@ msgstr "Destinazione articolo in giacenza"
msgid "Build Level"
msgstr "Livello Produzione"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Nome Articolo"
@@ -1139,7 +1143,7 @@ msgstr "Numeri di Serie Assegnazione automatica"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Assegna automaticamente gli articoli richiesti con i numeri di serie corrispondenti"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "I seguenti numeri di serie sono già esistenti o non sono validi"
@@ -1272,7 +1276,7 @@ msgstr "Articolo linea di produzione"
msgid "bom_item.part must point to the same part as the build order"
msgstr "gli elementi degli articoli della distinta base devono puntare alla stessa parte dell'ordine di produzione"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "L'articolo deve essere disponibile"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr "Costruzione"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Articolo Fornitore"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Consenti Le Varianti"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Distinta base (Bom)"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "In Produzione"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "Pianificato per la produzione"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Scorte esterne"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Disponibilità in magazzino"
@@ -1527,31 +1531,31 @@ msgstr "Ordine di produzione in ritardo"
msgid "Build order {bo} is now overdue"
msgstr "L'ordine di produzione {bo} è in ritardo"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "È Un Connegamento"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "E' un file"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "L'utente non ha il permesso di eliminare questi allegati"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "L'utente non ha il permesso di eliminare questo allegato"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Lista di selezione bloccata"
@@ -1571,8 +1575,8 @@ msgstr "Nessun codice valuta valido fornito"
msgid "No plugin"
msgstr "Nessun plugin"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "La stringa chiave deve essere univoca"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Utente"
@@ -1654,8 +1658,8 @@ msgstr "Utente"
msgid "Price break quantity"
msgstr "Quantità prezzo limite"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Prezzo"
@@ -1677,8 +1681,8 @@ msgstr "Nome per questa notifica"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Attivo"
@@ -1686,7 +1690,7 @@ msgstr "Attivo"
msgid "Is this webhook active"
msgstr "È questa notifica attiva"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token"
@@ -1756,7 +1760,7 @@ msgstr "Titolo"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definizione"
msgid "Unit definition"
msgstr "Definizione unità"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Allegato"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "Chiave logica dello stato che è uguale a questo stato personalizzato nella logica commerciale"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Valore"
@@ -2172,7 +2176,7 @@ msgstr "Scelte valide per questo parametro (separato da virgola)"
msgid "Selection list for this parameter"
msgstr "Lista di selezione per questo parametro"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Abilitato"
@@ -2204,8 +2208,8 @@ msgstr "ID Modello"
msgid "ID of the target model for this parameter"
msgstr "ID del modello di destinazione per questo parametro"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Modello"
@@ -2262,7 +2266,7 @@ msgstr "Data e ora della scansione del codice a barre"
msgid "URL endpoint which processed the barcode"
msgstr "Endpoint URL che ha elaborato il codice a barre"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Contesto"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Dati di risposta dalla scansione del codice a barre"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Risultato"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "Discussioni Email"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Chiave"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} cancellato"
msgid "A order that is assigned to you was canceled"
msgstr "Un ordine assegnato a te è stato annullato"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Elemento ricevuto"
@@ -2524,7 +2528,7 @@ msgstr "Nome del file"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Tipo di modello"
@@ -2669,8 +2673,8 @@ msgstr "Quanto spesso aggiornare i tassi di cambio (impostare a zero per disabil
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "giorni"
@@ -2914,8 +2918,8 @@ msgstr "Gli articoli sono modelli per impostazione predefinita"
msgid "Parts can be assembled from other components by default"
msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Componente"
@@ -2931,7 +2935,7 @@ msgstr "Acquistabile"
msgid "Parts are purchaseable by default"
msgstr "Gli articoli sono acquistabili per impostazione predefinita"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Vendibile"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Errori di log che si verificano durante la generazione dei report"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Dimensioni pagina"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Consenti il trasferimento di articoli non disponibili a magazzino tra le diverse ubicazioni di magazzino"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Modello Di Riferimento Ordine Di Produzione"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Modello richiesto per generare il campo di riferimento ordine di produzione"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "È richiesto il Proprietario Responsabile"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "A ogni ordine deve essere assegnato un proprietario responsabile"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Richiede Articolo Attivo"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Impedisci la creazione di ordini di produzione per gli articolo inattivi"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Richiede Articolo Bloccato"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Impedisci la creazione di ordini di costruzione per le parti sbloccate"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "Richiede un BOM valido"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Previene la creazione di ordini di costruzione a meno che BOM non sia stato convalidato"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "Richiedi Ordini Dei Figli Chiusi"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Impedisci il completamento dell'ordine di costruzione fino alla chiusura di tutti gli ordini figli"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "Ordini di Produzione Esterni"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "Abilita funzionalità ordini di produzione esterni"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Blocca Fino Al Passaggio Dei Test"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Impedisci che gli output di costruzione siano completati fino al superamento di tutti i test richiesti"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Abilita Ordini Di Reso"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Abilita la funzionalità ordine di reso nell'interfaccia utente"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Motivo di Riferimento per ordine di reso"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Modello richiesto per generare il campo di riferimento ordine di reso"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Modifica Ordini Di Reso Completati"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Consenti la modifica degli ordini di reso dopo che sono stati completati"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Modello Di Riferimento Ordine Di Vendita"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Modello richiesto per generare il campo di riferimento ordine di vendita"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Spedizione Predefinita Ordine Di Vendita"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Abilita la creazione di spedizioni predefinite con ordini di vendita"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Modifica Ordini Di Vendita Completati"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Consenti la modifica degli ordini di vendita dopo che sono stati spediti o completati"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "La Spedizione Richiede Controllo"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "Impedire il completamento delle spedizioni fino a quando gli articoli sono stati controllati"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Segna gli ordini spediti come completati"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Gli ordini di vendita contrassegnati come spediti saranno automaticamente completati, bypassando lo stato \"spedito\""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Modello di Riferimento Ordine D'Acquisto"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Modello richiesto per generare il campo di riferimento ordine di acquisto"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Modifica Ordini Di Acquisto Completati"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Consenti la modifica degli ordini di acquisto dopo che sono stati spediti o completati"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Converti Valuta"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "Converti il valore dell'elemento in valuta base quando si riceve lo stock"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Completa Automaticamente Gli Ordini D'Acquisto"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Contrassegna automaticamente gli ordini di acquisto come completi quando tutti gli elementi della riga sono ricevuti"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Abilita password dimenticata"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Abilita la funzione password dimenticata nelle pagine di accesso"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Abilita registrazione"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "SSO abilitato"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Abilita SSO nelle pagine di accesso"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Abilita registrazione SSO"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Abilita l'auto-registrazione tramite SSO per gli utenti nelle pagine di accesso"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "Abilita sincronizzazione dei gruppi SSO"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Abilita la sincronizzazione dei gruppi InvenTree con i gruppi forniti dall'IdP"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "Chiave gruppo SSO"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "Il nome dell'attributo di richiesta di gruppi fornito dall'IdP"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "Mappa del gruppo SSO"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "Una mappatura dai gruppi SSO ai gruppi InvenTree locali. Se il gruppo locale non esiste, verrà creato."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Rimuovere i gruppi al di fuori dell'SSO"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "Indica se i gruppi assegnati all'utente debbano essere rimossi se non sono backend dall'IdP. La disattivazione di questa impostazione potrebbe causare problemi di sicurezza"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Email richiesta"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Riempimento automatico degli utenti SSO"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Posta due volte"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Al momento della registrazione chiedere due volte all'utente l'indirizzo di posta elettronica"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Password due volte"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Al momento della registrazione chiedere agli utenti due volte l'inserimento della password"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Domini consentiti"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Limita la registrazione a determinati domini (separati da virgola, a partire da @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Gruppo iscrizione"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Gruppo a cui i nuovi utenti sono assegnati alla registrazione. Se la sincronizzazione di gruppo SSO è abilitata, questo gruppo è impostato solo se nessun gruppo può essere assegnato dall'IdP."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Applica MFA"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Gli utenti devono utilizzare la sicurezza a due fattori."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr "Abilitare questa impostazione richiederà a tutti gli utenti di impostare l'autenticazione multi fattore. Tutte le sessioni saranno disconnesse immediatamente."
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Controlla i plugin all'avvio"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Controlla che tutti i plugin siano installati all'avvio - abilita in ambienti contenitore"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Controlla gli aggiornamenti dei plugin"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Abilita controlli periodici per gli aggiornamenti dei plugin installati"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Abilita l'integrazione URL"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Attiva plugin per aggiungere percorsi URL"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Attiva integrazione navigazione"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Abilita i plugin per l'integrazione nella navigazione"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Abilita l'app integrata"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Abilita plugin per aggiungere applicazioni"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Abilita integrazione pianificazione"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Abilita i plugin per eseguire le attività pianificate"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Abilita eventi integrati"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Abilita plugin per rispondere agli eventi interni"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Abilita integrazione interfaccia"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Abilita i plugin per l'integrazione nell'interfaccia utente"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "Abilita integrazione email"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "Abilita i plugin per elaborare le email in uscita/in arrivo"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "Abilita codici progetto"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Abilita i codici del progetto per tracciare i progetti"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "Abilita la funzionalità per registrare i livelli storici e il valore del magazzino"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Escludi Posizioni Esterne"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Inventario periodico automatico"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Visualizza i nomi completi degli utenti"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Mostra nomi completi degli utenti invece che nomi utente"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "Visualizza Profili Utente"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "Visualizza i profili degli utenti sulla pagina del loro profilo"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Abilita Dati Stazione Di Prova"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Abilita la raccolta dati della stazione di prova per i risultati del test"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "Abilita Ping Macchina"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "Abilita l'attività di ping periodico delle macchine registrate per controllarne lo stato"
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "Tutti i modelli"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "Nessun tipo di modello allegato fornito"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Tipo di modello allegato non valido"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "I posti minimi non possono essere superiori al massimo"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "Il numero massimo di posti non può essere inferiore al minimo"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Un dominio vuoto non è consentito."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Nome dominio non valido: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "Il valore deve essere maiuscolo"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "Il valore deve essere un identificatore variabile valido"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "Il fornitore è attivo"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Produttore"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Azienda"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Indirizzo email"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Contatto"
@@ -4297,7 +4309,7 @@ msgstr "Partita IVA"
msgid "Company Tax ID"
msgstr "Codice Fiscale Azienda"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Indirizzo"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Collegamento alle informazioni sull'indirizzo (esterno)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Codice articolo produttore"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Seleziona Produttore"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "Codice articolo produttore (MPN)"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Fornitore"
@@ -4448,7 +4460,7 @@ msgstr "Fornitore"
msgid "Select supplier"
msgstr "Seleziona fornitore"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Unità di giacenza magazzino fornitore"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Confezionamento"
@@ -4533,7 +4545,7 @@ msgstr "Valuta predefinita utilizzata per questo fornitore"
msgid "Company Name"
msgstr "Nome Azienda"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "In magazzino"
@@ -4722,7 +4734,7 @@ msgstr "Dati riga originali"
msgid "Errors"
msgstr "Errori"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Valido"
@@ -4838,7 +4850,7 @@ msgstr "Numero di copie da stampare per ogni etichetta"
msgid "Connected"
msgstr "Connesso"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Sconosciuto"
@@ -4942,7 +4954,7 @@ msgstr "Chiave della proprietà"
msgid "Value of the property"
msgstr "Valore della proprietà"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Gruppo"
@@ -4966,118 +4978,118 @@ msgstr "Progresso Massimo"
msgid "Maximum value for progress type, required if type=progress"
msgstr "Valore massimo per il tipo di avanzamento, richiesto se tipo = progresso"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Riferimento ordine"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "In Sospeso"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Ha il codice del progetto"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Creato Da"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Creato prima"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Creato dopo"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "Ha data d'inizio"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "Data d'inizio prima"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "Data d'inizio dopo"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "Ha data di fine"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Data obiettivo prima"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Data obiettivo dopo"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Prezzo Articolo"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Completato prima"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Completato dopo"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "Ordine di Produzione Esterno"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Ordine"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Ordine completato"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Articolo interno"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Ordine in sospeso"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Completato"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Ha Spedizione"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Ordine D'Acquisto"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Ordine D'Acquisto"
msgid "Sales Order"
msgstr "Ordini di Vendita"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Restituisci ordine"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr "L'indirizzo non corrisponde all'azienda selezionata"
msgid "Order description (optional)"
msgstr "Descrizione dell'ordine (opzionale)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Seleziona il codice del progetto per questo ordine"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Collegamento a un sito web esterno"
@@ -5151,7 +5163,7 @@ msgstr "Data iniziale"
msgid "Scheduled start date for this order"
msgstr "Data d'inizio programmata per questo ordine"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Data scadenza"
@@ -5184,487 +5196,487 @@ msgstr "Punto di contatto per questo ordine"
msgid "Company address for this order"
msgstr "Indirizzo dell'azienda per questo ordine"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Riferimento ordine"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Stato"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Stato ordine d'acquisto"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Azienda da cui sono stati ordinati gli articoli"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Riferimento fornitore"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Codice di riferimento ordine fornitore"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "ricevuto da"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Data ordine completato"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Destinazione"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Destinazione per gli elementi ricevuti"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Il fornitore dell'articolo deve corrispondere al fornitore dell'ordine di produzione"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "L'elemento di riga non corrisponde all'ordine di acquisto"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "Manca un elemento collegato"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "La quantità deve essere un numero positivo"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Cliente"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Azienda da cui sono stati ordinati gli elementi"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Stato ordine di vendita"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Riferimento Cliente "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Codice di riferimento Ordine del Cliente"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Data di spedizione"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "spedito da"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "L'ordine è già stato completato"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "L'ordine è già stato annullato"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Solo un ordine aperto può essere contrassegnato come completo"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "L'ordine non può essere completato in quanto ci sono spedizioni incomplete"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "L'ordine non può essere completato perché ci sono allocazioni incomplete"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "L'ordine non può essere completato perché ci sono elementi di riga incompleti"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "L'ordine è bloccato e non può essere modificato"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Quantità Elementi"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Riferimento Linea Elemento"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Note linea elemento"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Data di destinazione per questa voce di riga (lasciare vuoto per utilizzare la data di destinazione dall'ordine)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Descrizione della parte (opzionale)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Contesto aggiuntivo per questa voce"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Prezzo unitario"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "Riga ordine d'acquisto"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "L'articolo del fornitore deve corrispondere al fornitore"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "L'ordine di produzione deve essere contrassegnato come esterno"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "Gli ordini di costruzione possono essere collegati solo alle parti di assemblaggio"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "L'articolo dell'ordine di produzione deve corrispondere all'articolo della riga"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Articolo Fornitore"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Ricevuto"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Numero di elementi ricevuti"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Prezzo di Acquisto"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Prezzo di acquisto unitario"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "Ordine di produzione esterno che deve essere eseguito da questo articolo"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "Riga Extra ordine di acquisto"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "Articolo ordine di vendita"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Solo gli articoli vendibili possono essere assegnati a un ordine di vendita"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Prezzo di Vendita"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Prezzo unitario di vendita"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Spedito"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Quantità spedita"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "Spedizione dell'ordine di vendita"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "L'indirizzo di spedizione deve corrispondere al cliente"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "Indirizzo di consegna per questa spedizione"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Data di spedizione"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Data di consegna"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Data di consegna della spedizione"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Verificato Da"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Utente che ha controllato questa spedizione"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Spedizione"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Numero di spedizione"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Numero di monitoraggio"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Informazioni di monitoraggio della spedizione"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Numero Fattura"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Numero di riferimento per la fattura associata"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "La spedizione è già stata spedita"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "La spedizione non ha articoli di stock assegnati"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "La spedizione deve essere controllata prima che possa essere completata"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "Riga Extra ordine di vendita"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "Assegnazione Ordini Di Vendita"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "L'elemento di magazzino non è stato assegnato"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Impossibile allocare l'elemento stock a una linea con un articolo diverso"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Impossibile allocare stock a una riga senza un articolo"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "La quantità di assegnazione deve essere maggiore di zero"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "La quantità deve essere 1 per l'elemento serializzato"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "L'ordine di vendita non corrisponde alla spedizione"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "La spedizione non corrisponde all'ordine di vendita"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Linea"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Riferimento della spedizione ordine di vendita"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Elemento"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Seleziona elemento stock da allocare"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Inserisci la quantità assegnata alla giacenza"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Riferimento ordine di reso"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Società a cui vengono restituiti gli articoli"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Stato ordine di reso"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "Articolo Linea Ordine Reso"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "L'elemento stock deve essere specificato"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "Quantità di reso superiore alla quantità di scorta"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "La quantità di reso deve essere maggiore di zero"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Quantità non valida per l'elemento stock serializzato"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Seleziona l'elemento da restituire dal cliente"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Data di ricezione"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr "La data in cui questo articolo restituito è stato ricevuto"
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Risultati"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Risultato per questa voce di riga"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Costo associato alla restituzione o riparazione per questa voce di linea"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "Riga Extra ordine di reso"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr "Copia Linee Extra"
msgid "Copy extra line items from the original order"
msgstr "Copia gli elementi di riga extra dall'ordine originale"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Copia parametri"
@@ -5784,11 +5796,11 @@ msgstr "Unisci elementi"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Unisce gli elementi con lo stesso articolo, destinazione e data di destinazione in una riga"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "Codice articolo"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Numero Dell'articolo Interno"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Inserisci il codice univoco per gli articoli in arrivo"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Data di Scadenza"
@@ -6056,123 +6068,131 @@ msgstr "Ordini di Reso in Ritardo"
msgid "Return order {ro} is now overdue"
msgstr "L'ordine di reso {ro} è ora in ritardo"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Preferiti"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Filtra per categorie preferite"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Profondità"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Filtra per profondità categoria"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Livello principale"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Filtra per categorie di primo livello"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Cascata"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Includi sottocategorie nei risultati filtrati"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Genitore"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Filtra per categoria genitore"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Escludi sottocategorie sotto la categoria specificata"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Ha Risultati"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "È una Variante"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "E' una revisione"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "Ha revisioni"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "BOM Valido"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "Categorie a Cascata"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "Se Vero, includere gli elementi nelle categorie figlie della categoria specificata"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Filtra per categoria ID numerica o per la stringa 'null'"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "L'articolo assemblato è provabile"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "Il componente è provabile"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Utilizzi"
@@ -6213,7 +6233,7 @@ msgstr "Parole chiave predefinite per gli articoli in questa categoria"
msgid "Icon"
msgstr "Icona"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Icona (facoltativa)"
@@ -6349,7 +6369,7 @@ msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
msgid "Part category"
msgstr "Categoria articolo"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN - Numero di riferimento interno"
@@ -6358,7 +6378,7 @@ msgstr "IPN - Numero di riferimento interno"
msgid "Part revision or version number"
msgstr "Numero di revisione o di versione"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Revisione"
@@ -6382,7 +6402,7 @@ msgstr "Scadenza Predefinita"
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:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Scorta Minima"
@@ -6390,7 +6410,7 @@ msgstr "Scorta Minima"
msgid "Minimum allowed stock level"
msgstr "Livello minimo di giacenza consentito"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Totale delle scorte disponibili al momento dell'inventario"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Data"
@@ -6759,7 +6779,7 @@ msgstr "Articolo subordinato"
msgid "Select part to be used in BOM"
msgstr "Seleziona l'articolo da utilizzare nella Distinta Base"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr "Categoria Superiore"
msgid "Parent part category"
msgstr "Categoria articolo principale"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Sottocategorie"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Risultati"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Numero di risultati registrati rispetto a questo modello"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Valuta di acquisto di questo articolo in stock"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "Il file non è un immagine"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Articolo Originale"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Seleziona l'articolo originale da duplicare"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Copia immagine"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Copia immagine dall'articolo originale"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Copia Distinta Base"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Copia fattura dei materiali dall'articolo originale"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Copia i dati dei parametri dall'articolo originale"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Copia note"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Copia note dall'articolo originale"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "Copia Test"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "Copia modelli di test dall'articolo originale"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Quantità iniziale"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Specificare la quantità iniziale disponibile per questo Articolo. Se la quantità è zero, non viene aggiunta alcuna quantità."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Ubicazione Iniziale Magazzino"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Specificare l'ubicazione iniziale del magazzino per questo Articolo"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Seleziona il fornitore (o lascia vuoto per saltare)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Seleziona il produttore (o lascia vuoto per saltare)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Codice articolo Produttore"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "L'azienda selezionata non è un fornitore valido"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "L'azienda selezionata non è un produttore valido"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "L'articolo del produttore che corrisponde a questo MPN esiste già"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "L'articolo del fornitore che corrisponde a questo SKU esiste già"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Nome Categoria"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "In Costruzione"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "Quantità di questo articolo attualmente in produzione"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Eccezionale quantità di questa parte prevista da costruire"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Articoli in magazzino"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Revisioni"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Giacenze Totali"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Scorte Non Assegnate"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Scorta Variante"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Duplica articolo"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Copia i dati iniziali da un altro Articolo"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Stock iniziale"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Crea Articolo con quantità di scorta iniziale"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Informazioni Fornitore"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Aggiungi le informazioni iniziali del fornitore per questo articolo"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Copia Parametri Categoria"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Copia i parametri dai modelli della categoria articolo selezionata"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Immagine esistente"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Nome del file di un'immagine articolo esistente"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Il file immagine non esiste"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Convalida l'intera Fattura dei Materiali"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Puoi produrre"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "Richiesto per gli Ordini di Produzione"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "Assegnato agli Ordini di Produzione"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "Richiesto per gli Ordini di Vendita"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "Assegnato agli Ordini di Vendita"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Prezzo Minimo"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Sovrascrivi valore calcolato per il prezzo minimo"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Valuta del prezzo minimo"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Prezzo Massimo"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Sovrascrivi valore calcolato per il prezzo massimo"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Valuta del prezzo massimo"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Aggiorna"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Aggiorna i prezzi per questo articolo"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Impossibile convertire dalle valute fornite in {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Il prezzo minimo non può essere maggiore del prezzo massimo"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Il prezzo massimo non può essere minore del prezzo minimo"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "Seleziona l'assemblaggio padre"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "Seleziona la componente"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Seleziona l'articolo da cui copiare la distinta base"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Rimuovi Dati Esistenti"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Rimuovi elementi distinta base esistenti prima di copiare"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Includi Ereditato"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Includi gli elementi Distinta Base ereditati da prodotti template"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Salta Righe Non Valide"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Abilita questa opzione per saltare le righe non valide"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Copia Articoli sostitutivi"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Copia articoli sostitutivi quando duplichi gli elementi distinta base"
@@ -7326,91 +7346,91 @@ msgstr "Nessuna azione specificata"
msgid "No matching action found"
msgstr "Nessuna azione corrispondente trovata"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Nessuna corrispondenza trovata per i dati del codice a barre"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Corrispondenza trovata per i dati del codice a barre"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "Il modello non è supportato"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "Istanza del modello non trovata"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Il codice a barre corrisponde a un elemento esistente"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Nessun articolo corrispondente trovato"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Nessun fornitore articolo corrispondente trovato"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Trovati più articoli fornitori corrispondenti"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "Nessuna plugin corrispondente trovato per i dati del codice a barre"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Corrispondenza Articoli del Fornitore"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "L'articolo è già stato ricevuto"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "Nessun plugin corrisponde al codice a barre del fornitore"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Trovati più articoli corrispondenti"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Nessun elemento corrispondente trovato"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Nessun ordine di vendita fornito"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Il codice a barre non corrisponde a un articolo di magazzino valido"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "L'elemento in magazzino non corrisponde alla riga"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Scorte insufficienti disponibili"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Articolo di magazzino assegnato all'ordine di vendita"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Informazioni non sufficienti"
@@ -7992,7 +8012,7 @@ msgstr "Bordo"
msgid "Print a border around each label"
msgstr "Stampa un bordo intorno ad ogni etichetta"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Orizzontale"
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "L'installazione dei plugin è disattivata"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Plugin installato con successo"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin installato in {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr "Plugin"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Nessun autore trovato"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Nome modello"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Descrizione del template"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Allega al Modello su Stampa"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Salva l'output del report come allegato contro l'istanza del modello collegato durante la stampa"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Formato del nome file"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtri"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Larghezza [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Larghezza dell'etichetta, specificata in mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Altezza [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Larghezza dell'etichetta, specificata in mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Snippet"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Report file snippet"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Descrizione file snippet"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Risorsa"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Report file risorsa"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "File risorsa descrizione"
@@ -8766,200 +8786,200 @@ msgstr "Nessun risultato"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "File immagine non trovato"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Nome della parte (maiuscole e minuscole)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "Il nome della parte contiene (maiuscole e minuscole)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Nome della parte (regex)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "IPN della parte (maiuscole e minuscole)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "IPN della parte contiene (maiuscole e minuscole)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "IPN della parte (regex)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Giacenza minima"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Giacenza massima"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Codici di stato"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Ubicazione Esterna"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Obsoleto"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "La quantità è richiesta"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Deve essere fornita un articolo valido"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "I numeri di serie non possono essere forniti per un articolo non tracciabile"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Seleziona Owner"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Gli elementi di magazzino non possono essere direttamente situati in un magazzino strutturale, ma possono essere situati in ubicazioni secondarie."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Esterno"
@@ -9101,7 +9121,7 @@ msgstr "Seleziona un fornitore articolo corrispondente per questo elemento di ma
msgid "Where is this stock item located?"
msgstr "Dove si trova questo articolo di magazzino?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Imballaggio di questo articolo di magazzino è collocato in"
@@ -9117,7 +9137,7 @@ msgstr "Questo elemento è stato installato su un altro elemento?"
msgid "Serial number for this item"
msgstr "Numero di serie per questo elemento"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Codice lotto per questo elemento di magazzino"
@@ -9206,7 +9226,7 @@ msgstr "La quantità non corrisponde ai numeri di serie"
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr "L'elemento di magazzino contiene altri elementi"
msgid "Stock item has been assigned to a customer"
msgstr "L'elemento di magazzino è stato assegnato a un cliente"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "L'elemento di magazzino è attualmente in produzione"
@@ -9234,7 +9254,7 @@ msgstr "L'elemento di magazzino è attualmente in produzione"
msgid "Serialized stock cannot be merged"
msgstr "Il magazzino serializzato non può essere unito"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Duplica elementi di magazzino"
@@ -9250,71 +9270,71 @@ msgstr "Gli elementi di magazzino devono riferirsi allo stesso articolo fornitor
msgid "Stock status codes must match"
msgstr "I codici di stato dello stock devono corrispondere"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Le giacenze non possono essere spostate perché non disponibili"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Note d'ingresso"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Il valore deve essere fornito per questo test"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "L'allegato deve essere caricato per questo test"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Risultato Test"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Test valore output"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Risultato della prova allegato"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Note del test"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr "Inserisci i numeri di serie per i nuovi elementi"
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Scaduto"
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "La quantità non deve superare la quantità disponibile ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Posizione magazzino di destinazione"
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Sottoallocazioni"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "L'articolo deve essere vendibile"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "L'elemento è assegnato a un ordine di vendita"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Elemento assegnato a un ordine di costruzione"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Cliente a cui assegnare elementi di magazzino"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "L'azienda selezionata non è un cliente"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Note sull'assegnazione delle scorte"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Deve essere fornito un elenco degli elementi di magazzino"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Note di fusione di magazzino"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Consenti fornitori non corrispondenti"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Consenti di unire gli elementi di magazzino che hanno fornitori diversi"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Consenti stato non corrispondente"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Consenti di unire gli elementi di magazzino con diversi codici di stato"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Devono essere riforniti almeno due elementi in magazzino"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Nessun cambiamento"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Valore di chiave primaria StockItem"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Note sugli spostamenti di magazzino"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Note sugli spostamenti di magazzino"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr "Permessi"
msgid "Important dates"
msgstr "Date Importanti"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Il token è stato revocato"
@@ -9927,163 +9951,163 @@ msgstr "Il token è stato revocato"
msgid "Token has expired"
msgstr "Il token è scaduto"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "Token API"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "Token API"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Nome Token"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Nome token personalizzato"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Data di scadenza token"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Ultimo accesso"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Revocato"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Impostazione autorizzazioni"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Visualizza"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Autorizzazione a visualizzare gli articoli"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Aggiungi"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Autorizzazione ad aggiungere elementi"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Modificare"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Permessi per modificare gli elementi"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Elimina"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Autorizzazione ad eliminare gli elementi"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "Bot"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "Interno"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Ospite"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Lingua"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "Lingua preferita dell'utente"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "Tema"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "Widgets"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Nome Visualizzato"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po
index 9323519240..7d9d8be78c 100644
--- a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "APIエンドポイントが見つかりません"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr "一括処理を行うには、部品リストを指示する必要があります"
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "項目はリストとして提供されなければなりません"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "無効なアイテムリスト"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "すべてのフィルターは真の場合にのみ使用されなければならない"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "指定された条件に一致する項目がありません"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "データの提供がありません。"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "この項目は一意である必要があります。"
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "ユーザーにこのモデルを表示する権限がありません"
@@ -65,11 +65,11 @@ msgstr "メールアドレスの確認"
msgid "You must type the same email each time."
msgstr "毎回同じメールアドレスを入力する必要があります。"
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "指定されたプライマリEメールアドレスは無効です。"
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "指定されたメールドメインは承認されていません。"
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "{original}を{unit}に変換できませんでした。"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "数量コードが無効です"
@@ -105,22 +105,22 @@ msgstr "日付を入力する"
msgid "Invalid decimal value"
msgstr "無効な10進数値"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "メモ"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "値 '{name}' はパターン形式で表示されません"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "指定された値が必要なパターンと一致しません: "
@@ -164,51 +164,51 @@ msgstr "この値からHTMLタグを削除"
msgid "Data contains prohibited markdown content"
msgstr "データに禁止されているマークダウン・コンテンツが含まれています。"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr "無効なURL:ホスト名がありません"
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr "無効なURL:ホスト名を解決できませんでした"
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr "URLがプライベートIPアドレスまたは予約済みIPアドレスを指しています"
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr "リダイレクトが多すぎます"
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "接続エラー"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "サーバは無効なステータスコードで応答しました"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "例外が発生しました"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "サーバーが無効なContent-Length値で応答しました"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "画像サイズが大きすぎます"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "画像のダウンロードが最大サイズを超えました"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "リモートサーバーが空のレスポンスを返しました"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "指定されたURLは有効な画像ファイルではありません"
@@ -220,117 +220,121 @@ msgstr "アプリにログイン"
msgid "Email"
msgstr "メールアドレス"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "二要素認証を有効にする必要があります。"
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "プラグイン検証の実行エラー"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "メタデータは python dict オブジェクトでなければなりません。"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "プラグインメタデータ"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "外部プラグインで使用するためのJSONメタデータフィールド"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "不適切な書式パターン"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "不明なフォーマットキーが指定されました"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "必要なフォーマットキーがありません"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "参照フィールドを空にすることはできません。"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "参照は必須パターンに一致する必要があります。"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "参照番号が大きすぎる"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "お名前"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "説明"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "説明 (オプション)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "パス"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "同じ親に重複した名前は存在しません。"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "マークダウンメモ (オプション)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "バーコード情報"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "サードパーティ製バーコードデータ"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "バーコードハッシュ"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "バーコードデータのユニークなハッシュ"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "既存のバーコードが見つかりました"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "サーバーエラー"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "サーバーによってエラーが記録されました。"
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "有効な数字でなければなりません"
msgid "Currency"
msgstr "通貨"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "利用可能なオプションから通貨を選択してください"
@@ -521,11 +525,11 @@ msgstr "中国語 (簡体字)"
msgid "Chinese (Traditional)"
msgstr "中国語 (繁体字)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "アップデートが利用可能"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "InvenTreeの更新版が利用可能になりました"
@@ -537,7 +541,7 @@ msgstr "無効な物理単位"
msgid "Not a valid currency code"
msgstr "有効な通貨コードではありません。"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "注文ステータス"
@@ -546,23 +550,23 @@ msgstr "注文ステータス"
msgid "Parent Build"
msgstr "親ビルド"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "バリアントを含む"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "バリアントを含む"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "バリアントを含む"
msgid "Part"
msgstr "パーツ"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "カテゴリ"
@@ -593,7 +597,7 @@ msgstr "カテゴリ"
msgid "Ancestor Build"
msgstr "祖先ビルド"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "担当"
@@ -601,11 +605,11 @@ msgstr "担当"
msgid "Assigned To"
msgstr "割り当て"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "作成前"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "の後に作成されました。"
@@ -641,99 +645,99 @@ msgstr "完成前"
msgid "Completed after"
msgstr "終了後"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "最小日付"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "最大日付"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "ツリーを除く"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "削除するには、ビルドをキャンセルする必要があります。"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "消耗品"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "オプション"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "アセンブリ"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "追跡"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "テスト可能"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "受注残高"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "割り当てられた"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "消費されました"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "利用可能"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "注文中"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr "ビルドが見つかりません"
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "組立注文"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "場所"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "出力"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "出力ストックアイテムIDでフィルタリングします。未インストールビルドアイテムを検索するには「null」をご使用ください。"
@@ -773,9 +777,9 @@ msgstr "目標期日は開始日以降であること"
msgid "Build Order Reference"
msgstr "ビルド・オーダー・リファレンス"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "セールス・オーダー・リファレンス"
msgid "Sales Order to which this build is allocated"
msgstr "このビルドが引き当てられている受注"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "ソース・ロケーション"
@@ -821,7 +825,7 @@ msgstr "外部ビルド"
msgid "This build order is fulfilled externally"
msgstr "このビルドオーダーは外部委託されます。"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "目的地"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "ビルドステータスコード"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "バッチコード"
@@ -883,8 +887,8 @@ msgstr "完成目標日"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "ビルド完了目標日。この日付を過ぎると、ビルドは期限切れになります。"
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "完了日"
@@ -900,7 +904,7 @@ msgstr "発行者"
msgid "User who issued this build order"
msgstr "このビルドオーダーを発行したユーザー"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "建設順序の優先順位"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "プロジェクトコード"
@@ -962,9 +966,9 @@ msgstr "ビルド出力がビルド順序と一致しません"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "数量はゼロより大きくなければなりません"
@@ -999,7 +1003,7 @@ msgstr "ビルドオブジェクト"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "シリアル在庫の場合、数量は1でなければなりません
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "割当数量({q})は在庫可能数量({a})を超えてはなりません。"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "在庫が過剰配分"
@@ -1057,8 +1061,8 @@ msgstr "在庫が過剰配分"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "在庫商品"
@@ -1082,7 +1086,7 @@ msgstr "仕向け地在庫品"
msgid "Build Level"
msgstr "ビルドレベル"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "部品名"
@@ -1139,7 +1143,7 @@ msgstr "シリアル番号の自動割り当て"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "シリアル番号が一致する必要なアイテムを自動的に割り当て"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "以下のシリアル番号は既に存在するか、無効です。"
@@ -1272,7 +1276,7 @@ msgstr "ビルドラインアイテム"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.partは、ビルドオーダーと同じパーツを指す必要があります。"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "在庫があること"
@@ -1385,8 +1389,8 @@ msgstr "インストール先"
msgid "Build"
msgstr "ビルド"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "サプライヤー"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "バリアントを許可"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "BOMアイテム"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "生産中"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "ビルド予定"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "外部在庫"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "在庫状況"
@@ -1527,31 +1531,31 @@ msgstr "期限切れ注文"
msgid "Build order {bo} is now overdue"
msgstr "ビルドオーダー{bo}は現在期限切れです"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr "サムネイルあり"
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "リンク"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "ファイル"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "ユーザーにはこれらの添付ファイルを削除する権限がありません。"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr "この添付ファイルを編集する権限がありません"
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "ユーザーにはこの添付ファイルを削除する権限がありません"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "選択リストがロックされています"
@@ -1571,8 +1575,8 @@ msgstr "有効な通貨コードはありません"
msgid "No plugin"
msgstr "プラグインなし"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "キー文字列は一意でなければなりません。"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "ユーザー"
@@ -1654,8 +1658,8 @@ msgstr "ユーザー"
msgid "Price break quantity"
msgstr "価格破壊数量"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "価格"
@@ -1677,8 +1681,8 @@ msgstr "このウェブフックの名前"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "有効"
@@ -1686,7 +1690,7 @@ msgstr "有効"
msgid "Is this webhook active"
msgstr "このウェブフックはアクティブですか"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "トークン"
@@ -1756,7 +1760,7 @@ msgstr "タイトル"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "定義"
msgid "Unit definition"
msgstr "ユニットの定義"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "添付ファイル"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "ビジネスロジックでこのカスタムステートに等しいステート論理キー"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "値"
@@ -2172,7 +2176,7 @@ msgstr "このパラメータの有効な選択肢(カンマ区切り)"
msgid "Selection list for this parameter"
msgstr "このパラメータの選択リスト"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "有効"
@@ -2204,8 +2208,8 @@ msgstr "モデルID"
msgid "ID of the target model for this parameter"
msgstr "このパラメータの対象となるモデルのID"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "テンプレート"
@@ -2262,7 +2266,7 @@ msgstr "バーコードスキャンの日時"
msgid "URL endpoint which processed the barcode"
msgstr "バーコードを処理したURLエンドポイント"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "コンテキスト"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "バーコードスキャンによるレスポンスデータ"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "結果"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "メールのスレッド"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "キー"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} キャンセル"
msgid "A order that is assigned to you was canceled"
msgstr "あなたに割り当てられた注文がキャンセルされました。"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "受領品目"
@@ -2524,7 +2528,7 @@ msgstr "ファイル名"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "モデルタイプ"
@@ -2669,8 +2673,8 @@ msgstr "為替レートの更新頻度 (ゼロに設定すると無効になり
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "日"
@@ -2914,8 +2918,8 @@ msgstr "パーツはデフォルトのテンプレートです"
msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "コンポーネント"
@@ -2931,7 +2935,7 @@ msgstr "購入可能"
msgid "Parts are purchaseable by default"
msgstr "パーツはデフォルトで購入可能です"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "販売可能"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "レポート生成時に発生するエラーのログ"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "ページサイズ"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "在庫のないストックアイテムをストックロケーション間で移動可能"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "ビルド・オーダー参照パターン"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Build Order参照フィールドの生成に必要なパターン"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "責任ある所有者を要求"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "各注文には、責任ある所有者を指定する必要があります。"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "アクティブパートが必要"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "非稼動部品の製造オーダー作成を防止"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "ロックされた部分を要求"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "ロックされていない部品の製造オーダー作成を防止"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "有効なBOMが必要"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "BOMが検証されない限り、製造オーダーが作成されないようにします。"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "クローズド・チャイルド・オーダー"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "すべてのチャイルドオーダーが終了するまで、ビルドオーダーの完了を防止します。"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "外部ビルドオーダー"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "外部ビルドオーダー機能の有効化"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr "外部ビルドオーダーを必須とする"
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr "外部サプライヤーから組み立て済み部品を発注する際は、外部ビルドオーダーを指定する必要があります"
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "テストがパスするまでブロック"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "必要なテストがすべて合格するまで、ビルド出力が完了しないようにします。"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "返品注文の有効化"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "ユーザーインターフェイスで返品注文機能を有効にします。"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "リターンオーダー参照パターン"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "返品注文参照フィールドの生成に必要なパターン"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "完了した返品注文の編集"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "注文完了後の返品注文の編集が可能"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "販売注文参照パターン"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "販売注文参照フィールドの生成に必要なパターン"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "販売注文のデフォルト出荷"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "販売注文でデフォルト出荷を作成可能"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "完了した販売注文の編集"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "出荷または完了後の販売注文の編集を許可します。"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "出荷には確認が必要です"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "商品が確認されるまで、出荷の完了をお控えください。"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "出荷された注文を完了としてマーク"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "出荷済みと表示された販売注文は、「出荷済み」ステータスを回避して自動的に完了します。"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr "在庫移動指示を有効"
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr "ユーザーインターフェースで在庫移動指示機能を有効にします"
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr "在庫移動指示コード採番フォーマット"
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr "在庫移動指示コードを自動採番するために使用するフォーマット(必須項目)"
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr "未完了項目のテストのブロック"
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr "必要な品目チェックが完了していない場合、販売注文への在庫品目の割り当てを防止します"
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "発注書参照パターン"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "発注書参照フィールドの生成に必要なパターン"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "完了した発注書の編集"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "出荷後または完了後の発注書の編集が可能"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "通貨の変換"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "在庫を受け取る際、商品価値を基準通貨に変換"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "自動発注"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "すべての品目を受領した時点で、発注書を完了として自動的にマーク"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "パスワード忘れ"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "ログインページでのパスワード忘れ防止機能の有効化"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "登録の有効化"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "ログインページでユーザーの自己登録を可能にします。"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "SSOの有効化"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "ログインページでSSOを有効化"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "SSO登録の有効化"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "ログインページでSSOによるユーザーの自己登録を可能にします。"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "SSOグループ同期の有効化"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "InvenTreeグループとIdPが提供するグループの同期を有効にします。"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "SSOグループキー"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "IdP が提供する groups claim 属性の名前。"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "SSOグループマップ"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "SSOグループからローカルのInvenTreeグループへのマッピング。ローカル・グループが存在しない場合は、作成されます。"
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "SSO外のグループを削除"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "ユーザーに割り当てられたグループがIdPによってバックエンドされていない場合に削除するかどうか。この設定を無効にすると、セキュリティ上の問題が発生する可能性があります。"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "メールアドレスは必須です"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "サインアップ時にメールの入力を要求"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "SSOユーザーの自動入力"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "SSOアカウントデータからユーザー詳細を自動入力"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "メール2回"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "サインアップの際、ユーザーに2度メールを尋ねます。"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "パスワード2回"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "サインアップ時にパスワードを2回要求"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "許可ドメイン"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "特定のドメイン(@で始まるカンマ区切り)へのサインアップを制限します。"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "登録時のグループ"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "新規ユーザ登録時に割り当てられるグループ。SSOグループ同期が有効な場合、このグループはIdPからグループを割り当てられない場合にのみ設定されます。"
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "MFAの実施"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "ユーザーは多要素セキュリティを使用する必要があります。"
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr "この設定を有効にすると、すべてのユーザーに多要素認証の設定が必須となります。すべてのセッションは直ちに切断されます。"
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "起動時にプラグインをチェック"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "起動時にすべてのプラグインがインストールされていることを確認 - コンテナ環境では有効にします。"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "プラグインのアップデートの確認"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "インストールされているプラグインのアップデートを定期的にチェックします。"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "URL統合の有効化"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "プラグインがURLルートを追加できるようにします"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "ナビゲーション統合の有効化"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "プラグインをナビゲーションに統合可能"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "アプリとの統合"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "プラグインを有効にしてアプリを追加"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "スケジュール統合の有効化"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "スケジュールタスクを実行するプラグインの有効化"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "イベント統合の有効化"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "プラグインが内部イベントに応答できるようにします。"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "インターフェース統合の有効化"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "プラグインがユーザー・インターフェースに統合できるようにします。"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "メール連携を有効にする"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "プラグインを有効にして、送信/受信メールを処理できるようにします"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "プロジェクトコードの有効化"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "プロジェクトを追跡するためのプロジェクトコードの有効化"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr "棚卸機能を有効"
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "過去の在庫数量および価値を記録する機能を有効にします"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "外部ロケーションを除く"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "外部拠点にある在庫品を棚卸計算から除外します"
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "自動引取期間"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr "自動棚卸記録の間隔(日数)"
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr "古い棚卸の記録を削除"
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr "指定した日数より古い棚卸し記録を削除します"
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr "棚卸しの削除間隔"
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr "棚卸し記録は、指定された日数が経過すると削除されます"
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr "古い在庫追跡記録を削除"
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr "指定した日数より古い在庫追跡記録を削除します"
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr "在庫追跡記録の削除間隔"
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr "在庫追跡記録は、指定された日数が経過すると削除されます"
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "ユーザーのフルネームを表示"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "ユーザー名の代わりにフルネームを表示"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "ユーザープロファイルの表示"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "プロフィールページにユーザーのプロフィールを表示"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr "週の始まり"
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr "カレンダー表示における週開始曜日"
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr "日曜日"
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr "月曜日"
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr "火曜日"
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr "水曜日"
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr "木曜日"
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr "金曜日"
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr "土曜日"
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "テストステーションデータの有効化"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "テスト結果のテストステーションデータ収集の有効化"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "マシン ping を有効にする"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "登録されたマシンの状態を確認するため、定期的なpingタスクを有効にしてください"
@@ -4128,49 +4140,49 @@ msgstr "最終階層の項目を表示"
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr "子要素がない場所やカテゴリについては、サブレベルではなくアイテムやパーツを自動的にデフォルト表示にします"
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "全モデル"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "アタッチメント型式なし"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "無効なアタッチメントモデルタイプ"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr "ファイルサイズが{max_size} MBのアップロード上限を超えています"
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr "ファイル名が不正です"
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "最小プレースは最大プレースより大きくできません。"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "最大定員が最小定員を下回ることはありません。"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "空のドメインは使用できません。"
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "無効なドメイン名: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "値は大文字でなければならない"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "値は有効な変数識別名でなければならない。"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "サプライヤーの活動"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "製造元"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "会社名"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "連絡先メールアドレス"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "お問い合わせ"
@@ -4297,7 +4309,7 @@ msgstr "納税者番号"
msgid "Company Tax ID"
msgstr "法人税番号"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "住所"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "住所情報へのリンク(外部)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "メーカー・パーツ"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "メーカー選択"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "MPN"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "リンクされたメーカー部品は、同じベース部品を参照する必要があります。"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "仕入先"
@@ -4448,7 +4460,7 @@ msgstr "仕入先"
msgid "Select supplier"
msgstr "サプライヤーを選択"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "サプライヤー在庫管理ユニット"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "ミニマムチャージ(例:仕入れ手数料)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "パッケージング"
@@ -4533,7 +4545,7 @@ msgstr "このサプライヤーで使用されるデフォルト通貨"
msgid "Company Name"
msgstr "会社名"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "在庫あり"
@@ -4722,7 +4734,7 @@ msgstr "元の行データ"
msgid "Errors"
msgstr "エラー"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "有効"
@@ -4838,7 +4850,7 @@ msgstr "各ラベルの印刷部数"
msgid "Connected"
msgstr "接続済み"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "不明"
@@ -4942,7 +4954,7 @@ msgstr "プロパティーキー"
msgid "Value of the property"
msgstr "プロパティー値"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "グループ"
@@ -4966,118 +4978,118 @@ msgstr "最大進捗"
msgid "Maximum value for progress type, required if type=progress"
msgstr "進行状況タイプの場合の最大値。type=progress の場合に必須です。"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "注文参照"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "並外れた"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "プロジェクトコード"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "作成者"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "作成前"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "の後に作成されました。"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "開始日あり"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "開始日 前"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "開始日 後"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "目標期日あり"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "目標期日"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "以降の目標日"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr "更新日(開始)"
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr "更新日(終了)"
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "価格"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "完成前"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "終了後"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "外部ビルドオーダー"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "注文"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "注文完了"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "内部パーツ"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "注文保留"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "完了"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "出荷あり"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr "配送が見つかりません"
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "注文"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "注文"
msgid "Sales Order"
msgstr "セールスオーダー"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "リターンオーダー"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr "在庫移動指示"
@@ -5135,11 +5147,11 @@ msgstr "指定の会社と住所が一致しません"
msgid "Order description (optional)"
msgstr "ご注文内容(任意)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "この注文のプロジェクトコードを選択してください。"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "外部ページへのリンク"
@@ -5151,7 +5163,7 @@ msgstr "開始日"
msgid "Scheduled start date for this order"
msgstr "本注文の開始予定日"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "終了日に達したら"
@@ -5184,487 +5196,487 @@ msgstr "本注文に関する連絡先"
msgid "Company address for this order"
msgstr "本注文の会社住所"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "注文参照"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "ステータス"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "発注状況"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "注文元の会社"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "サプライヤー・リファレンス"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "サプライヤー注文参照コード"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "受信"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "注文完了日"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "目的地"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "入荷商品のお届け先"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "部品サプライヤーは、POサプライヤーと一致する必要があります。"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "品目が発注書と一致しません"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "行項目にリンクされた部品が不足しています"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "数量は正の数でなければなりません。"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr "仮想部品にはシリアル番号を割り当てることはできません"
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "顧客"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "販売先"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "販売注文状況"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "お客様リファレンス"
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "顧客注文参照コード"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "出荷日"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "出荷元"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "注文はすでに完了しています。"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "注文はすでにキャンセルされました"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "未完了の注文にのみ完了マークを付けることができます。"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "出荷に不備があるため、注文を完了できません。"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "割り当てに不備があるため、注文を完了できません。"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "不完全な項目があるため、注文を完了できません。"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "注文はロックされ、変更できません。"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "品目数量"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr "項番"
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr "この項目の行番号(任意)"
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "行項目参照"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "項目"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "この行項目の目標期日(注文の目標期日を使用する場合は空白のままにしてください。)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "行項目の説明(オプション)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "この行の補足説明"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "単価"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "発注書項目"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "サプライヤーの部品はサプライヤーと一致しなければなりません。"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "ビルドオーダーは外部としてマークする必要があります"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "ビルドオーダーはアセンブリ部品にのみリンクできます"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "ビルドオーダーの部品は、ラインアイテムの部品と一致する必要があります。"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr "組立部品には、外部ビルドオーダーが必要です"
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "サプライヤー"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "受信"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "受領品目数"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "購入金額"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "購入単価"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "本品目により完成する外部ビルドオーダー"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "発注書追加行"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "販売注文明細"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "販売可能な部品のみを販売オーダーに割り当てることができます。"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "セール価格"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "販売単価"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "発送済み"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "出荷数量"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "販売注文の出荷"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "配送先住所はお客様と一致している必要があります"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "こちらの発送先住所"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "出荷日"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "配達日"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "貨物の引渡日"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "チェック済み"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "この貨物をチェックしたユーザー"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "発送"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "出荷番号"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "追跡番号"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "貨物追跡情報"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "請求書番号"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "関連する請求書の参照番号"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "発送済み"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "出荷品目に割り当てられた在庫がありません"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "出荷は完了前に必ず確認が必要となります"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "セールスオーダー追加ライン"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "販売注文の割り当て"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "在庫アイテムが割り当てられていません"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "在庫品を別部品のラインに割り当てることはできません。"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "部品のないラインに在庫を割り当てることはできません。"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "割当数量が在庫数量を超えることはできません"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "割当数量はゼロより大きくなければなりません"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "シリアル化された在庫品の場合、数量は1でなければなりません。"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "販売注文と出荷が一致しません"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "出荷が販売注文と一致しません"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "ライン"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "販売注文の出荷参照"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "アイテム"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "割り当てるストックアイテムを選択"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "在庫割当数量の入力"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "リターンオーダー参照"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "返品元の会社"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "返品状況"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "返品注文項目"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "在庫品の指定が必要です。"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "返品数量が在庫数量を超える場合"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "返品数量はゼロより大きくなければなりません。"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "シリアル化されたストックアイテムの数量が無効です。"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "お客様から返品する商品を選択"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "受領日"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr "この返品商品が到着した日付"
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "転帰"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "この項目の成果"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "この品目の返品または修理に関連する費用"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "リターンオーダー追加ライン"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr "在庫移動指示コード"
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr "在庫移動指示の状態"
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr "移動元品"
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr "移動先品"
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr "在庫を消費する"
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr "在庫を移動するのではなく、割り当てられた在庫品から移動数量を差し引くことで、それを「消費」します"
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr "移動先が設定されるまで、指示を完了することはできません"
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr "指示は、完全に割り当てられるまで完了しません"
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr "在庫移動指示明細"
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr "移動されました"
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr "移動数"
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr "在庫移動指示の引き当て"
@@ -5692,7 +5704,7 @@ msgstr "余分な行をコピー"
msgid "Copy extra line items from the original order"
msgstr "元の注文から余分な項目をコピー"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "コピーパラメータ"
@@ -5784,11 +5796,11 @@ msgstr "アイテムのマージ"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "同じ品目、同じ仕向け地、同じ日付の品目を1つの品目に統合します。"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "内部部品番号"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "入荷在庫品のバッチコード入力"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "有効期限"
@@ -6056,123 +6068,131 @@ msgstr "期限切れ返品注文"
msgid "Return order {ro} is now overdue"
msgstr "リターンオーダー{ro}は現在期限切れです"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "スター付き"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "星の数で絞り込む"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "深さ"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "カテゴリの深さでフィルタリング"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "最多メンバーレベル"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "トップレベルカテゴリーによるフィルタリング"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "カスケード表示"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "フィルタリング結果にサブカテゴリーを含めることができます。"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "親"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "親カテゴリーによる絞り込み"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "指定したカテゴリの下にあるサブカテゴリを除外します。"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "実績あり"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "バリエーション?"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "改訂版"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "改定あり"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "BOM有効"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "カスケードカテゴリ"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "もし該当する場合には、指定されたカテゴリの子カテゴリ内のアイテムを含めてください。"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "数値カテゴリIDまたはリテラル'null'でフィルタリングしてください"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr "アセンブリ部品はアクティブです"
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr "アセンブリ部品は追跡可能です"
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "組み立て部分はテスト可能"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr "アセンブリ部品はロックされています"
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr "コンポーネント部品はアクティブです"
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr "コンポーネント部品は追跡可能です"
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "コンポーネント部分はテスト可能"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr "コンポーネント部品はアセンブリです"
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr "コンポーネント部品は仮想的なものです"
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr "引き当て可能在庫あり"
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "用途"
@@ -6213,7 +6233,7 @@ msgstr "このカテゴリの部品のデフォルトキーワード"
msgid "Icon"
msgstr "アイコン"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "アイコン (オプション)"
@@ -6349,7 +6369,7 @@ msgstr "検索結果での視認性を向上させる部分キーワード"
msgid "Part category"
msgstr "パーツカテゴリ"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6358,7 +6378,7 @@ msgstr "IPN"
msgid "Part revision or version number"
msgstr "部品のリビジョンまたはバージョン番号"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "リビジョン"
@@ -6382,7 +6402,7 @@ msgstr "デフォルトの有効期限"
msgid "Expiry time (in days) for stock items of this part"
msgstr "この部品の在庫品の有効期限(日単位"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "最小在庫"
@@ -6390,7 +6410,7 @@ msgstr "最小在庫"
msgid "Minimum allowed stock level"
msgstr "最低許容在庫量"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr "最大在庫数"
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "ストックテイク時の在庫可能量"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "日付"
@@ -6759,7 +6779,7 @@ msgstr "サブパート"
msgid "Select part to be used in BOM"
msgstr "BOMで使用する部品を選択"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr "金額"
@@ -6911,351 +6931,351 @@ msgstr "親カテゴリ"
msgid "Parent part category"
msgstr "親部品カテゴリー"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "サブカテゴリ"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "結果"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "このテンプレートに対して記録された結果の数"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "この在庫商品の購入通貨"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "ファイルが画像ではありません"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "オリジナルパート"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "複製する元の部品を選択"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "コピー画像"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "元の部分から画像をコピー"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "コピーBOM"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "元の部品から部品表をコピー"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "元の部品からパラメータデータをコピー"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "コピーノート"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "元のパートからメモをコピー"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "コピーテスト"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "元の部品からテスト用テンプレートをコピーしてください"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "初期在庫量"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "この部品の初期在庫数量を指定します。数量が0の場合、在庫は追加されません。"
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "初期在庫場所"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "この部品の初期在庫場所を指定してください。"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "サプライヤーを選択してください。"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "メーカーを選択してください。"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "メーカー品番"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "選択された企業は有効なサプライヤーではありません。"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "選択された会社は有効な製造業者ではありません。"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "このMPNに一致するメーカー部品はすでに存在します。"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "このSKUに一致するサプライヤー部品は既に存在します。"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "カテゴリ名"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "建物"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "現在生産中の当該部品の数量"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "この部品の予定生産数量"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "在庫商品"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "リビジョン"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "総在庫"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "未割当株式"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "バリアントストック"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "重複部分"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "別のパートから初期データをコピー"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "初期在庫"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "初期在庫数で部品を作成"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "サプライヤー情報"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "この部品の初期サプライヤー情報を追加します。"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "コピーカテゴリパラメータ"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "選択したパーツカテゴリーからパラメータテンプレートをコピー"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "既存イメージ"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "既存の部品画像のファイル名"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "画像ファイルが存在しません"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "部品表全体の検証"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "ビルド"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "ビルドオーダーに必要なもの"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "ビルドオーダーに割り当てられました"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "セールスオーダーに必要なもの"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "セールスオーダーに割り当てられました"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr "パートIPN"
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr "部品の説明"
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "部品を選択すると、その部品(およびそのバリエーション部品)の棚卸し情報を作成します"
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "カテゴリを選択すると、そのカテゴリ(およびサブカテゴリ)に含まれるすべての部品が表示されます"
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "ロケーションを選択すると、そのロケーション(およびサブロケーション)にあるすべての部品が表示されます"
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr "棚卸しデータを登録"
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr "選択した部品の棚卸しデータを保存"
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr "レポートを生成"
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr "選択した部品の棚卸し明細を作成"
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "最小価格"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "最低価格の計算値の上書き"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "最低価格通貨"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "最大価格"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "最高価格の計算値を上書き"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "最高価格通貨"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "更新"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "この部品の価格を更新"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "提供された通貨から{default_currency}に変換できませんでした。"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "最低価格は最高価格を超えてはなりません。"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "最高価格は最低価格を下回ってはなりません。"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr "この部品の必要数量(数量単位を含めることができます)"
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "親アセンブリを選択"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "構成部品の選択"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr "数量の形式が不正です"
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "BOMをコピーする部品を選択します。"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "既存データの削除"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "コピー前に既存のBOMアイテムを削除"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "インクルード継承"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "テンプレート化された部品から継承されたBOM項目を含めます。"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "無効な行をスキップ"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "無効な行をスキップするには、このオプションを有効にします。"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "コピー代用部品"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "BOMアイテムの重複時に代替部品をコピー"
@@ -7326,91 +7346,91 @@ msgstr "アクションが指定されていません"
msgid "No matching action found"
msgstr "一致するアクションが見つかりませんでした"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "バーコードデータが見つかりません"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "バーコードデータとの一致が確認されました。"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "モデルはサポートされていません"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "モデルインスタンスが見つかりません"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "バーコードが既存のアイテムと一致"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "一致する部品データが見つかりません"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "一致するサプライヤー部品は見つかりませんでした"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "一致するサプライヤー部品が複数見つかりました"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "バーコードデータに一致するプラグインは見つかりませんでした"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "適合部品"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "商品はすでに受領済みです。"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "サプライヤーのバーコードに一致するプラグインがない"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "複数の一致する行項目が見つかりました"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "該当する項目が見つかりません"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "販売注文はありません"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "バーコードが既存の在庫品と一致しません"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "在庫品目が行品目と一致しません"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "在庫不足"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "販売注文に割り当てられた在庫品目"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "情報が不足しています"
@@ -7992,7 +8012,7 @@ msgstr "ボーダー"
msgid "Print a border around each label"
msgstr "各ラベルの周囲に枠線を印刷します。"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "ランドスケープ"
@@ -8072,77 +8092,77 @@ msgstr "TMEバーコードのスキャンをサポートします。"
msgid "The Supplier which acts as 'TME'"
msgstr "「TME」として活動するサプライヤー"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr "プラグインの管理ができるのは、スーパーユーザーアカウントのみです"
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "プラグインのインストールが無効"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr "インストール用のパッケージ名またはURLが指定されていません"
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr "パッケージ名またはURLに無効な文字が含まれています"
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "プラグインのインストールに成功しました"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "{path} にプラグインをインストール"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "プラグインがレジストリに見つかりませんでした"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "プラグインはパッケージ化されていません"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "プラグインパッケージ名が見つかりません"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "スタッフユーザーのみがプラグインを管理できます"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "プラグインのアンインストールが無効"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "プラグインがアクティブなため、アンインストールできません。"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr "このプラグインは必須のため、アンインストールすることはできません。"
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr "このプラグインはサンプルプラグインのため、アンインストールすることはできません。"
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr "プラグインは組み込みプラグインのため、アンインストールすることはできません。"
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "プラグインがインストールされていません"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "プラグインのインストールが見つかりません"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "プラグインのアンインストールに成功"
@@ -8194,21 +8214,21 @@ msgstr "パッケージプラグイン"
msgid "Plugin"
msgstr "プラグイン"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "著者は見つかりませんでした"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "プラグイン'{p}'は現在のInvenTreeバージョン{v}と互換性がありません。"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "プラグインには少なくともバージョン {v} が必要です。"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "プラグインに必要なバージョンは最大で{v}です。"
@@ -8481,136 +8501,136 @@ msgstr "リーガル"
msgid "Letter"
msgstr "文字"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "この名前のテンプレートファイルは既に存在します。"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "テンプレート名"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "テンプレート説明"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "リビジョン番号(自動インクリメント)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "プリントのモデルに装着"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "印刷時に、リンクされたモデルインスタンスに対してレポート出力を添付ファイルとして保存"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "ファイル名パターン"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "ファイル名生成パターン"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "テンプレートが有効"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "テンプレートの対象モデルタイプ"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "フィルター"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "テンプレートクエリフィルタ(key=valueペアのカンマ区切りリスト)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "テンプレートファイル"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "PDFレポートのページサイズ"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "レポートを横向きにレンダリング"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "統合"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr "選択された項目に対して単一のレポートを生成します"
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "テンプレート{self.name}から生成されたレポート"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr "テンプレートの構文エラー"
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr "レポートの表示にエラーが発生しました"
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "レポート生成エラー"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr "レポート出力の統合エラー"
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "幅 [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "ラベル幅(mm単位)"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "高さ [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "ラベルの高さ(mm単位)"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "ラベル印刷エラー"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "スニペット"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "レポートスニペットファイル"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "スニペットファイルの説明"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "資産"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "レポート資産ファイル"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "アセットファイルの説明"
@@ -8766,200 +8786,200 @@ msgstr "何も結果はありません"
msgid "Transferred"
msgstr "転送されました"
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr "メディアファイルのパスが不正です"
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr "静的ファイルのパスが不正です"
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr "アセットファイルが見つかりません"
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "画像ファイルが見つかりません"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr "画像ファイルが指定されていません"
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "part_image タグには Part インスタンスが必要です。"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "company_image タグには Company インスタンスが必要です。"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "場所の深さによる絞り込み"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "トップレベルのロケーションによるフィルタリング"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "フィルタリング結果にサブロケーションを含めることができます。"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "親の位置"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "親の所在地でフィルタリング"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "部品名(大文字・小文字を区別しません)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "パート名に含まれるもの(大文字・小文字を区別しません)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "部品名(正規表現)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "パートIPN(大文字と小文字を区別しません)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "パートIPNに含まれるもの(大文字と小文字は区別されません)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "パートIPN(正規表現)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "最小在庫"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "最大在庫"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "ステータスコード"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "外部ロケーション"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "ビルド・オーダーで消費"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "その他在庫品に装着"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "パートツリー"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "更新前"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "更新後"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "ストックテイク前"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "ストックテイク後"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "有効期限"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "有効期限"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "期限失効"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr "そのアイテムおよびそのすべての子孫を除外するためのStockItemのプライマリキーをご提供ください。"
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr "カスケードの所在地"
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr "もし真であれば、指定された場所の子要素に含まれる項目を含めます"
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr "数値のロケーションID、またはリテラル文字列の「null」でフィルタリングしてください。"
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "数量が必要です"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "有効な部品を供給する必要があります。"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "指定されたサプライヤの部品が存在しません。"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "サプライヤー部品にはパックサイズが定義されていますが、use_pack_sizeフラグが設定されていません。"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "追跡不可能な部品については、シリアル番号は提供できません。"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr "組み込み済みを含める"
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr "もし真であれば、指定した在庫アイテムの中に組み込まれている構成部品のテスト結果を含める"
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr "数値による在庫品IDでの絞り込み"
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr "ID {id} の在庫品は存在しません"
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr "部品のバリエーションを含める"
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr "日付(終了)"
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr "日付(開始)"
@@ -8995,7 +9015,7 @@ msgstr "所有者を選択"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "ストックアイテムは、構造的なストックロケーションに直接配置されることはありませんが、子ロケーションに配置されることはあります。"
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "外部"
@@ -9101,7 +9121,7 @@ msgstr "この在庫品に一致するサプライヤー部品を選択してく
msgid "Where is this stock item located?"
msgstr "この在庫品はどこにありますか?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "この在庫品は以下の梱包で保管されています。"
@@ -9117,7 +9137,7 @@ msgstr "このアイテムは他のアイテムにインストールされてい
msgid "Serial number for this item"
msgstr "この商品のシリアル番号"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "このストックアイテムのバッチコード"
@@ -9206,7 +9226,7 @@ msgstr "数量がシリアル番号と一致しません"
msgid "Cannot assign stock to structural location"
msgstr "構造上ロケーションに在庫を割り当てることはできません"
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "テストテンプレートが存在しません"
@@ -9226,7 +9246,7 @@ msgstr "在庫商品には他の商品が含まれています。"
msgid "Stock item has been assigned to a customer"
msgstr "在庫商品が顧客に割り当てられました"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "在庫品は現在生産中です。"
@@ -9234,7 +9254,7 @@ msgstr "在庫品は現在生産中です。"
msgid "Serialized stock cannot be merged"
msgstr "連番在庫の統合はできません"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "在庫品の重複"
@@ -9250,71 +9270,71 @@ msgstr "在庫品は同じサプライヤーの部品を参照する必要があ
msgid "Stock status codes must match"
msgstr "在庫状況コードが一致していること"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "在庫がないため移動できません。"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "ストックアイテムのトラッキング"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "記入上の注意"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "在庫品テスト結果"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "このテストには値を指定する必要があります。"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "このテストには添付ファイルをアップロードする必要があります。"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "このテストでは無効な値です。"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "試験結果"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "テスト出力値"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "試験結果添付"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "テストノート"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "テストステーション"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "試験が実施された試験ステーションの識別子。"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "開始"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "テスト開始のタイムスタンプ"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "修了済み"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "テスト終了のタイムスタンプ"
@@ -9398,7 +9418,7 @@ msgstr "新しい商品のシリアル番号の入力"
msgid "Supplier Part Number"
msgstr "サプライヤー品番"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "期限切れ"
@@ -9428,8 +9448,8 @@ msgstr "在庫品目がしていされていません"
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "数量は在庫数 ({q}) を超えてはなりません。"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "仕向け地"
@@ -9501,127 +9521,131 @@ msgstr "ステータスを変更するストックアイテムを選択"
msgid "No stock items selected"
msgstr "ストックアイテムが選択されていません"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "サブロケーション"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr "在庫品を削除"
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr "このロケーションにあるすべての在庫品を削除します"
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr "サブロケーションを削除"
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr "このロケーションに含まれるすべてのサブロケーションを削除します"
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "親株式所在地"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "パーツは販売可能でなければなりません"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "商品が販売オーダーに割り当てられています。"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr "部品がが在庫移動指示にに引き当てられました"
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "アイテムがビルドオーダーに割り当てられています。"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "在庫アイテムを割り当てるお客様"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "選択された企業は顧客ではありません"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "株式譲渡に関する注意事項"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "在庫品のリストが必要です。"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "株式併合に関する注意事項"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "不一致のサプライヤーを許可"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "異なるサプライヤの部品を持つ在庫品目をマージできるようにします。"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "不一致の状態を許可"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "異なるステータスコードを持つストックアイテムをマージすることができます。"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "少なくとも2つのストックアイテムを提供する必要があります。"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "変化なし"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "StockItem 主キー値"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "在庫がありません"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr "在庫品目は既に在庫にあります"
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr "数量は負の数であってはなりません。"
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "株式取引に関する注記"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr "既存の在庫に統合します"
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "株式取引に関する注記"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr "可能なら、返品された商品を既存の在庫商品に統合してください"
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "次のシリアル番号"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "以前のシリアル番号"
@@ -9919,7 +9943,7 @@ msgstr "許可"
msgid "Important dates"
msgstr "重要な日付"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "トークンは失効しました"
@@ -9927,163 +9951,163 @@ msgstr "トークンは失効しました"
msgid "Token has expired"
msgstr "トークンの有効期限が切れました"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "APIトークン"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "APIトークン"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "トークン名"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "カスタムトークン名"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "トークンの有効期限"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "最終表示"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "トークンが最後に使用された時間"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "失効"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "パーミッション設定"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "表示"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "項目を表示する権限"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "追加"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "項目を追加する権限"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "変更"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "項目を編集する権限"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "削除"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "項目を削除する権限"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "ボット"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "内部"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "ゲスト"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "言語"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "ユーザーの希望言語"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "テーマ"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "JSONとしてのウェブUI用の設定 - 手動で編集しないでください!"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "ウィジェット"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "JSONとしてのダッシュボード・ウィジェットの設定 - 手動で編集しないでください!"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "表示名"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "ユーザーの表示名選択"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "位置"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "主な役職名"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "ユーザーのステータスメッセージ"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "ユーザーの位置情報"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "ユーザーが積極的にシステムを利用"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "希望の連絡先"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "ユーザータイプ"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "どのようなユーザーですか?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "組織"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "ユーザーの主な所属組織"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "プライマリーグループ"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "ユーザーのプライマリグループ"
diff --git a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po
index fcc46f727c..0b32f2cb32 100644
--- a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API 엔드포인트를 찾을 수 없습니다"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr "일괄 작업을 위해 항목 목록을 제공해야 합니다"
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "항목은 목록 형태로 제공되어야 합니다"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "잘못된 항목 목록이 제공되었습니다"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "all 필터는 true와 함께만 사용할 수 있습니다"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "제공된 조건과 일치하는 항목이 없습니다"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "데이터가 제공되지 않았습니다"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "이 필드는 고유해야 합니다."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "이 모델을 볼 수 있는 권한이 없습니다."
@@ -65,11 +65,11 @@ msgstr "이메일 주소 확인"
msgid "You must type the same email each time."
msgstr "매번 동일한 이메일을 입력해야 합니다."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "제공된 기본 이메일 주소가 유효하지 않습니다."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "제공된 이메일 도메인이 승인되지 않았습니다."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "{original}을(를) {unit}(으)로 변환할 수 없습니다"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "잘못된 수량이 제공되었습니다"
@@ -105,22 +105,22 @@ msgstr "날짜 입력"
msgid "Invalid decimal value"
msgstr "잘못된 소수 값"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "메모"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "값 '{name}'이(가) 패턴 형식에 없습니다"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "제공된 값이 요구되는 패턴과 일치하지 않습니다: "
@@ -164,51 +164,51 @@ msgstr "이 값에서 HTML 태그를 제거하세요"
msgid "Data contains prohibited markdown content"
msgstr "데이터에 금지된 마크다운 내용이 포함되어 있습니다"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr "잘못된 URL: 호스트명이 없습니다"
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr "잘못된 URL: 호스트명을 확인할 수 없습니다"
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr "URL이 사설 또는 예약된 IP 주소를 가리킵니다"
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr "리디렉션이 너무 많습니다"
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "연결 오류"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "서버가 잘못된 상태 코드를 반환했습니다"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "예외가 발생했습니다"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "서버가 잘못된 Content-Length 값을 반환했습니다"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "이미지 크기가 너무 큽니다!"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "이미지 다운로드가 최대 크기를 초과했습니다"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "원격 서버가 빈 응답을 반환했습니다"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "제공된 URL은 유효한 이미지 파일이 아닙니다"
@@ -220,117 +220,121 @@ msgstr "앱에 로그인"
msgid "Email"
msgstr "이메일"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "다른 작업을 하기 전에 먼저 2단계 인증을 활성화해야 합니다."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "플러그인 유효성 검사 실행 중 오류가 발생했습니다"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "메타데이터는 파이썬 dict 객체여야 합니다"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "플러그인 메타데이터"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "외부 플러그인에서 사용하는 JSON 메타데이터 필드"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "패턴 형식이 올바르지 않습니다"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "알 수 없는 형식 키가 지정되었습니다"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "필수 형식 키가 누락되었습니다"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "참조(Reference) 필드는 비워둘 수 없습니다"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "참조(Reference)는 요구되는 패턴과 일치해야 합니다"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "참조 번호가 너무 큽니다"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "잘못된 선택입니다"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "이름"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "설명"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "설명 (선택 사항)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "경로"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "같은 상위 항목 아래에는 중복된 이름이 있을 수 없습니다"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "마크다운 메모 (선택 사항)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "바코드 데이터"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "서드파티 바코드 데이터"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "바코드 해시"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "바코드 데이터의 고유 해시"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "기존 바코드를 찾았습니다"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "서버 오류"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "서버에 오류가 기록되었습니다."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "유효한 숫자여야 합니다"
msgid "Currency"
msgstr "통화"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "사용 가능한 옵션에서 통화를 선택하세요"
@@ -521,11 +525,11 @@ msgstr "중국어 (간체)"
msgid "Chinese (Traditional)"
msgstr "중국어 (번체)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "업데이트 사용 가능"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "InvenTree 업데이트가 있습니다"
@@ -537,7 +541,7 @@ msgstr "잘못된 물리 단위"
msgid "Not a valid currency code"
msgstr "유효한 통화 코드가 아닙니다"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "주문 상태"
@@ -546,23 +550,23 @@ msgstr "주문 상태"
msgid "Parent Build"
msgstr "직상위 빌드"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "변형(Variant) 포함"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "변형(Variant) 포함"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "변형(Variant) 포함"
msgid "Part"
msgstr "부품"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "분류"
@@ -593,7 +597,7 @@ msgstr "분류"
msgid "Ancestor Build"
msgstr "상위 계층 빌드"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "나에게 할당 됨"
@@ -601,11 +605,11 @@ msgstr "나에게 할당 됨"
msgid "Assigned To"
msgstr "할당 대상"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "생성일 이전"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "생성일 이후"
@@ -641,99 +645,99 @@ msgstr "완료일 이전"
msgid "Completed after"
msgstr "완료일 이후"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "최소 날짜"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "최대 날짜"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "트리 제외"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "빌드를 삭제하려면 먼저 취소해야 합니다"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "소모품"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "선택사항"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "조립품"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "추적됨"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "테스트 가능"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "미결 주문"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "할당됨"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "소모됨"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "사용 가능"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "주문 중"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr "빌드를 찾을 수 없습니다"
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "작업 지시서"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "위치"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "산출물"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "산출물 재고 항목 ID로 필터링합니다. 설치되지 않은 빌드 항목을 찾으려면 'null'을 사용하세요."
@@ -773,9 +777,9 @@ msgstr "목표일은 시작일 이후여야 합니다"
msgid "Build Order Reference"
msgstr "작업 지시서 참조번호"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "판매 주문 참조"
msgid "Sales Order to which this build is allocated"
msgstr "이 빌드가 할당된 판매 주문"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "원본 위치"
@@ -821,7 +825,7 @@ msgstr "외주 생산"
msgid "This build order is fulfilled externally"
msgstr "이 작업 지시서는 외주로 생산됩니다"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "대상 위치"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "빌드 상태 코드"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "배치 코드"
@@ -883,8 +887,8 @@ msgstr "목표 완료일"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "빌드 완료 목표일. 이 날짜 이후에는 빌드가 지연으로 처리됩니다."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "완료일"
@@ -900,7 +904,7 @@ msgstr "발행자"
msgid "User who issued this build order"
msgstr "이 작업 지시서를 발행한 사용자"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "이 빌드 주문의 우선순위"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "프로젝트 코드"
@@ -962,9 +966,9 @@ msgstr "생산 완제품이 작업 지시서와 일치하지 않습니다"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "수량은 0보다 커야 합니다"
@@ -999,7 +1003,7 @@ msgstr "빌드 객체"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "시리얼이 있는 재고의 수량은 1이어야 합니다"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "할당 수량({q})은 사용 가능한 재고 수량({a})을 초과할 수 없습니다"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "재고 항목이 과다 할당되었습니다"
@@ -1057,8 +1061,8 @@ msgstr "재고 항목이 과다 할당되었습니다"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "재고 항목"
@@ -1082,7 +1086,7 @@ msgstr "대상 재고 항목"
msgid "Build Level"
msgstr "빌드 레벨"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "부품명"
@@ -1139,7 +1143,7 @@ msgstr "시리얼 번호 자동 할당"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "일치하는 시리얼 번호로 필요한 항목을 자동으로 할당합니다"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "다음 시리얼 번호는 이미 존재하거나 유효하지 않습니다"
@@ -1272,7 +1276,7 @@ msgstr "빌드 라인 항목"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part는 빌드 주문과 동일한 부품을 가리켜야 합니다"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "항목은 재고에 있어야 합니다"
@@ -1385,8 +1389,8 @@ msgstr "설치 대상"
msgid "Build"
msgstr "빌드"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "공급업체 부품"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "변형(Variant) 허용"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "BOM 항목"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "생산 중"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "빌드 예정"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "외부 재고"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "사용 가능 재고"
@@ -1527,31 +1531,31 @@ msgstr "기한 초과 빌드 주문"
msgid "Build order {bo} is now overdue"
msgstr "빌드 주문 {bo}이(가) 기한을 초과했습니다"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "링크 여부"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "파일 여부"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "사용자에게 이 첨부파일들을 삭제할 권한이 없습니다"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "사용자에게 이 첨부파일을 삭제할 권한이 없습니다"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "선택 목록이 잠겨 있습니다"
@@ -1571,8 +1575,8 @@ msgstr "유효한 통화 코드가 제공되지 않았습니다"
msgid "No plugin"
msgstr "플러그인 없음"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "키 문자열은 고유해야 합니다"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "사용자"
@@ -1654,8 +1658,8 @@ msgstr "사용자"
msgid "Price break quantity"
msgstr "가격 구간 수량"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "가격"
@@ -1677,8 +1681,8 @@ msgstr "이 웹훅의 이름"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "활성"
@@ -1686,7 +1690,7 @@ msgstr "활성"
msgid "Is this webhook active"
msgstr "이 웹훅이 활성 상태인가요"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "토큰"
@@ -1756,7 +1760,7 @@ msgstr "제목"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "정의"
msgid "Unit definition"
msgstr "단위 정의"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "첨부파일"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "업무 로직에서 이 사용자 정의 상태와 동일한 상태 논리 키"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "값"
@@ -2172,7 +2176,7 @@ msgstr "이 매개변수에 대한 유효한 선택지(쉼표로 구분)"
msgid "Selection list for this parameter"
msgstr "이 매개변수의 선택 목록"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "사용"
@@ -2204,8 +2208,8 @@ msgstr "모델 ID"
msgid "ID of the target model for this parameter"
msgstr "이 매개변수의 대상 모델 ID"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "템플릿"
@@ -2262,7 +2266,7 @@ msgstr "바코드 스캔 날짜 및 시간"
msgid "URL endpoint which processed the barcode"
msgstr "바코드를 처리한 URL 엔드포인트"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "컨텍스트"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "바코드 스캔의 응답 데이터"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "결과"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "이메일 스레드"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "키"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} 취소됨"
msgid "A order that is assigned to you was canceled"
msgstr "귀하에게 할당된 주문이 취소되었습니다"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "항목 수령됨"
@@ -2524,7 +2528,7 @@ msgstr "파일명"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "모델 유형"
@@ -2669,8 +2673,8 @@ msgstr "환율을 업데이트하는 주기(0으로 설정하면 비활성화)"
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "일"
@@ -2914,8 +2918,8 @@ msgstr "부품은 기본적으로 템플릿입니다"
msgid "Parts can be assembled from other components by default"
msgstr "부품은 기본적으로 다른 구성요소로 조립할 수 있습니다"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "구성요소"
@@ -2931,7 +2935,7 @@ msgstr "구매 가능"
msgid "Parts are purchaseable by default"
msgstr "부품은 기본적으로 구매 가능합니다"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "판매 가능"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "보고서 생성 중 발생하는 오류를 기록합니다"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "페이지 크기"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "재고가 없는 재고 항목을 재고 위치 간에 이동할 수 있도록 허용합니다"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "작업 지시서 참조번호 패턴"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "작업 지시서 참조번호 필드를 생성하기 위한 필수 패턴"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "책임자 필수"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "각 주문에는 책임자가 지정되어야 합니다"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "활성 부품 필수"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "비활성 부품에 대해 작업 지시서 생성을 방지합니다"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "잠긴 부품 필수"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "잠기지 않은 부품에 대해 작업 지시서 생성을 방지합니다"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "유효한 BOM 필수"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "BOM이 검증되지 않으면 작업 지시서 생성을 방지합니다"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "하위 주문 종료 필수"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "모든 하위 주문이 종료될 때까지 작업 지시서 완료를 방지합니다"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "외주 생산 작업 지시서"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "외주 생산 작업 지시서 기능 사용"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "테스트 통과 전까지 차단"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "필수 테스트가 모두 통과될 때까지 생산 완제품 완료를 방지합니다"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "반품 주문 사용"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "사용자 인터페이스에서 반품 주문 기능을 사용합니다"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "반품 주문 참조 패턴"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "반품 주문 참조 필드를 생성하기 위한 필수 패턴"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "완료된 반품 주문 편집"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "반품 주문이 완료된 후에도 편집을 허용합니다"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "판매 주문 참조 패턴"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "판매 주문 참조 필드를 생성하기 위한 필수 패턴"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "판매 주문 기본 배송"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "판매 주문과 함께 기본 배송 생성 사용"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "완료된 판매 주문 편집"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "판매 주문이 배송되었거나 완료된 후에도 편집을 허용합니다"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "배송 확인 필요"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "항목이 확인될 때까지 배송 완료를 방지합니다"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "배송된 주문을 완료로 표시"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "\"배송됨\" 상태를 건너뛰고, 배송된 것으로 표시된 판매 주문을 자동으로 완료 처리합니다"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "구매 주문 참조 패턴"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "구매 주문 참조 필드를 생성하기 위한 필수 패턴"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "완료된 구매 주문 편집"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "구매 주문이 배송되었거나 완료된 후에도 편집을 허용합니다"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "통화 변환"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "재고 수령 시 항목 값을 기준 통화로 변환합니다"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "구매 주문 자동 완료"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "모든 라인 항목을 수령하면 구매 주문을 자동으로 완료로 표시합니다"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "비밀번호 찾기 사용"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "로그인 페이지에서 비밀번호 찾기 기능을 사용합니다"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "회원가입 사용"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "로그인 페이지에서 사용자 자기 등록(회원가입)을 사용합니다"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "SSO 사용"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "로그인 페이지에서 SSO를 사용합니다"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "SSO 등록 사용"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "로그인 페이지에서 SSO를 통한 자기 등록(회원가입)을 사용합니다"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "SSO 그룹 동기화 사용"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "IdP에서 제공하는 그룹과 InvenTree 그룹의 동기화를 사용합니다"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "SSO 그룹 키"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "IdP에서 제공하는 groups 클레임 속성의 이름"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "SSO 그룹 매핑"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "SSO 그룹을 로컬 InvenTree 그룹으로 매핑합니다. 로컬 그룹이 없으면 생성됩니다."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "SSO 외부 그룹 제거"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "IdP에서 제공되지 않는 그룹이 사용자에게 할당되어 있으면 제거할지 여부입니다. 이 설정을 비활성화하면 보안 문제가 발생할 수 있습니다"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "이메일 필수"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "회원가입 시 이메일 입력을 요구합니다"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "SSO 사용자 자동 입력"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "SSO 계정 데이터에서 사용자 상세 정보를 자동으로 채웁니다"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "이메일 2회 입력"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "회원가입 시 이메일을 두 번 입력하도록 요청합니다"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "비밀번호 2회 입력"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "회원가입 시 비밀번호를 두 번 입력하도록 요청합니다"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "허용된 도메인"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "특정 도메인으로 회원가입을 제한합니다(쉼표로 구분, @로 시작)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "회원가입 시 그룹"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "등록 시 새 사용자가 할당될 그룹입니다. SSO 그룹 동기화가 활성화된 경우, IdP에서 그룹을 할당할 수 없을 때만 이 그룹이 설정됩니다."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "MFA 강제"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "사용자는 다중 요소 보안을 사용해야 합니다."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr "이 설정을 활성화하면 모든 사용자가 다중 요소 인증을 설정해야 합니다. 모든 세션이 즉시 연결 해제됩니다."
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "시작 시 플러그인 확인"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "시작 시 모든 플러그인이 설치되어 있는지 확인합니다(컨테이너 환경에서 사용)"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "플러그인 업데이트 확인"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "설치된 플러그인의 업데이트를 주기적으로 확인합니다"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "URL 통합 사용"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "플러그인이 URL 라우트를 추가할 수 있도록 허용합니다"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "내비게이션 통합 사용"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "플러그인이 내비게이션에 통합될 수 있도록 허용합니다"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "앱 통합 사용"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "플러그인이 앱을 추가할 수 있도록 허용합니다"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "스케줄 통합 사용"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "플러그인이 예약 작업을 실행할 수 있도록 허용합니다"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "이벤트 통합 사용"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "플러그인이 내부 이벤트에 응답할 수 있도록 허용합니다"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "인터페이스 통합 사용"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "플러그인이 사용자 인터페이스에 통합될 수 있도록 허용합니다"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "메일 통합 사용"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "플러그인이 발신/수신 메일을 처리할 수 있도록 허용합니다"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "프로젝트 코드 사용"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "프로젝트를 추적하기 위한 프로젝트 코드를 사용합니다"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr "재고 실사 사용"
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "과거 재고 수준과 가치를 기록하는 기능을 사용합니다"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "외부 위치 제외"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "외부 위치의 재고 품목을 재고 실사 계산에서 제외합니다"
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "자동 재고 실사 주기"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr "자동 재고 실사 기록 간격(일)"
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr "오래된 재고 실사 항목 삭제"
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr "지정된 일수보다 오래된 재고 실사 항목을 삭제합니다"
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr "재고 실사 삭제 간격"
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr "재고 실사 항목은 지정된 일수 후 삭제됩니다"
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr "오래된 재고 추적 항목 삭제"
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr "지정된 일수보다 오래된 재고 추적 항목을 삭제합니다"
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr "재고 추적 삭제 간격"
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr "재고 추적 항목은 지정된 일수 후 삭제됩니다"
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "사용자 전체 이름 표시"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "사용자 이름 대신 사용자 전체 이름을 표시합니다"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "사용자 프로필 표시"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "프로필 페이지에 사용자 프로필을 표시합니다"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "테스트 스테이션 데이터 사용"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "테스트 결과를 위한 테스트 스테이션 데이터 수집을 사용합니다"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "장비 핑 사용"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "등록된 장비의 상태를 확인하기 위해 주기적으로 핑 작업을 수행합니다"
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "모든 모델"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "첨부 모델 유형이 제공되지 않았습니다"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "잘못된 첨부 모델 유형입니다"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "최소 자리수는 최대 자리수보다 클 수 없습니다"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "최대 자리수는 최소 자리수보다 작을 수 없습니다"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "빈 도메인은 허용되지 않습니다."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "잘못된 도메인 이름: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "값은 대문자여야 합니다"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "값은 유효한 변수 식별자여야 합니다"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "공급업체가 활성화됨"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "제조사"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "회사"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "연락처 이메일 주소"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "담당자"
@@ -4297,7 +4309,7 @@ msgstr "세금 ID"
msgid "Company Tax ID"
msgstr "회사 세금 ID"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "주소"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "주소 정보 링크(외부)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "제조사 부품"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "제조사 선택"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "MPN"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "연결된 제조사 부품은 동일한 기본 부품을 참조해야 합니다"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "공급업체"
@@ -4448,7 +4460,7 @@ msgstr "공급업체"
msgid "Select supplier"
msgstr "공급업체 선택"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "공급업체 SKU"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "최소 요금(예: 보관 수수료)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "포장"
@@ -4533,7 +4545,7 @@ msgstr "이 공급업체에서 사용하는 기본 통화"
msgid "Company Name"
msgstr "회사명"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "재고 있음"
@@ -4722,7 +4734,7 @@ msgstr "원본 행 데이터"
msgid "Errors"
msgstr "오류"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "유효"
@@ -4838,7 +4850,7 @@ msgstr "각 라벨에 대해 인쇄할 복사본 수"
msgid "Connected"
msgstr "연결됨"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "알 수 없음"
@@ -4942,7 +4954,7 @@ msgstr "속성 키"
msgid "Value of the property"
msgstr "속성 값"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "그룹"
@@ -4966,118 +4978,118 @@ msgstr "최대 진행도"
msgid "Maximum value for progress type, required if type=progress"
msgstr "진행도 유형의 최대값( type=progress 인 경우 필수)"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "주문 참조"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "미결"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "프로젝트 코드 있음"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "생성자"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "이전 생성"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "이후 생성"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "시작일 있음"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "시작일 이전"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "시작일 이후"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "목표일 있음"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "목표일 이전"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "목표일 이후"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr "이전 업데이트"
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr "이후 업데이트"
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "가격 정보 있음"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "완료일 이전"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "완료일 이후"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "외주 생산 작업 지시서"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "주문"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "주문 완료"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "내부 부품"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "주문 대기"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "완료됨"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "배송 있음"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr "배송을 찾을 수 없습니다"
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "구매 주문"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "구매 주문"
msgid "Sales Order"
msgstr "판매 주문"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "반품 주문"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr "주소가 선택한 회사와 일치하지 않습니다"
msgid "Order description (optional)"
msgstr "주문 설명(선택 사항)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "이 주문의 프로젝트 코드를 선택하세요"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "외부 페이지 링크"
@@ -5151,7 +5163,7 @@ msgstr "시작일"
msgid "Scheduled start date for this order"
msgstr "이 주문의 예정 시작일"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "목표일"
@@ -5184,487 +5196,487 @@ msgstr "이 주문의 연락 담당자"
msgid "Company address for this order"
msgstr "이 주문의 회사 주소"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "주문 참조"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "상태"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "구매 주문 상태"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "품목을 주문하는 공급업체"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "공급업체 참조"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "공급업체 주문 참조 코드"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "수령자"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "주문이 완료된 날짜"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "목적지"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "수령된 품목의 목적지"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "부품 공급업체는 구매 주문 공급업체와 일치해야 합니다"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "라인 항목이 구매 주문과 일치하지 않습니다"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "라인 항목에 연결된 부품이 없습니다"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "수량은 양수여야 합니다"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr "가상 부품에는 일련번호를 할당할 수 없습니다"
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "고객"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "품목을 판매하는 대상 회사"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "판매 주문 상태"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "고객 참조"
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "고객 주문 참조 코드"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "발송일"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "발송자"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "주문이 이미 완료되었습니다"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "주문이 이미 취소되었습니다"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "열린 주문만 완료로 표시할 수 있습니다"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "미완료 발송이 있어 주문을 완료할 수 없습니다"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "미완료 할당이 있어 주문을 완료할 수 없습니다"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "미완료 라인 항목이 있어 주문을 완료할 수 없습니다"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "이 주문은 잠겨 있어 수정할 수 없습니다"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "품목 수량"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr "라인 번호"
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr "이 항목의 라인 번호(선택)"
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "라인 항목 참조"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "라인 항목 메모"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "이 라인 항목의 목표일(비워 두면 주문의 목표일을 사용)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "라인 항목 설명(선택)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "이 라인의 추가 정보"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "단가"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "구매 주문 라인 항목"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "공급업체 부품은 공급업체와 일치해야 합니다"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "빌드 주문은 외부로 표시되어야 합니다"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "빌드 주문은 조립 부품에만 연결할 수 있습니다"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "빌드 주문 부품은 라인 항목 부품과 일치해야 합니다"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "공급업체 부품"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "수령됨"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "수령된 품목 수"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "구매 가격"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "단위 구매 가격"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "이 라인 항목으로 이행할 외주 생산 작업 지시서"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "구매 주문 추가 라인"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "판매 주문 라인 항목"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "판매 가능한 부품만 판매 주문에 할당할 수 있습니다"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "판매 가격"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "단위 판매 가격"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "발송됨"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "발송 수량"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "판매 주문 발송"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "발송 주소는 고객과 일치해야 합니다"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "이 발송의 배송지 주소"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "발송 날짜"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "배송일"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "발송물 배송 날짜"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "확인자"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "이 발송을 확인한 사용자"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "발송"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "발송 번호"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "운송장 번호"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "발송 추적 정보"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "송장 번호"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "연결된 송장의 참조 번호"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "발송이 이미 전송되었습니다"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "발송에 할당된 재고 품목이 없습니다"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "발송은 완료하기 전에 확인되어야 합니다"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "판매 주문 추가 라인"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "판매 주문 할당"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "재고 품목이 할당되지 않았습니다"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "부품이 다른 라인에 재고 품목을 할당할 수 없습니다"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "부품이 없는 라인에는 재고를 할당할 수 없습니다"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "할당 수량은 재고 수량을 초과할 수 없습니다"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "할당 수량은 0보다 커야 합니다"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "일련번호가 있는 재고 품목의 수량은 1이어야 합니다"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "판매 주문이 발송과 일치하지 않습니다"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "발송이 판매 주문과 일치하지 않습니다"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "라인"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "판매 주문 발송 참조"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "품목"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "할당할 재고 품목을 선택하세요"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "재고 할당 수량을 입력하세요"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "반품 주문 참조"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "품목이 반품되는 회사"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "반품 주문 상태"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "반품 주문 라인 항목"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "재고 품목을 지정해야 합니다"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "반품 수량이 재고 수량을 초과합니다"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "반품 수량은 0보다 커야 합니다"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "일련번호가 있는 재고 품목에 대한 수량이 올바르지 않습니다"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "고객에게서 반품받을 품목을 선택하세요"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "수령일"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr "이 반품 품목을 수령한 날짜"
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "결과"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "이 라인 항목의 결과"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "이 라인 항목의 반품 또는 수리에 관련된 비용"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "반품 주문 추가 라인"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr "추가 라인 복사"
msgid "Copy extra line items from the original order"
msgstr "원본 주문에서 추가 라인 항목을 복사"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "매개변수 복사"
@@ -5784,11 +5796,11 @@ msgstr "항목 병합"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "부품, 목적지, 목표일이 같은 항목을 하나의 라인 항목으로 병합"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "내부 부품 번호"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "입고 재고 품목의 배치 코드를 입력하세요"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "만료일"
@@ -6056,123 +6068,131 @@ msgstr "기한 초과 반품 주문"
msgid "Return order {ro} is now overdue"
msgstr "반품 주문 {ro}가 이제 기한을 초과했습니다"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "즐겨찾기"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "즐겨찾기 카테고리로 필터"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "깊이"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "카테고리 깊이로 필터"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "최상위"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "최상위 카테고리로 필터"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "계층 포함"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "필터 결과에 하위 카테고리를 포함"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "상위"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "상위 카테고리로 필터"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "지정된 카테고리 아래의 하위 카테고리를 제외"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "결과 있음"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "변형 여부"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "리비전 여부"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "리비전 있음"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "BOM 유효"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "카테고리 계층 포함"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "참이면 지정된 카테고리의 하위 카테고리에 있는 항목을 포함합니다"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "숫자 카테고리 ID 또는 'null' 값으로 필터"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr "조립 부품이 활성 상태"
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr "조립 부품을 추적할 수 있음"
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "조립 부품을 테스트할 수 있음"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr "구성 부품이 활성 상태"
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr "구성 부품을 추적할 수 있음"
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "구성 부품을 테스트할 수 있음"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr "구성 부품이 조립품임"
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr "구성 부품이 가상 부품임"
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr "사용 가능한 재고 있음"
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "사용"
@@ -6213,7 +6233,7 @@ msgstr "이 카테고리의 부품 기본 키워드"
msgid "Icon"
msgstr "아이콘"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "아이콘(선택)"
@@ -6349,7 +6369,7 @@ msgstr "검색 결과에서 가시성을 높이기 위한 부품 키워드"
msgid "Part category"
msgstr "부품 카테고리"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6358,7 +6378,7 @@ msgstr "IPN"
msgid "Part revision or version number"
msgstr "부품 개정 또는 버전 번호"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "개정"
@@ -6382,7 +6402,7 @@ msgstr "기본 만료"
msgid "Expiry time (in days) for stock items of this part"
msgstr "이 부품의 재고 항목 만료 기간(일)"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "최소 재고"
@@ -6390,7 +6410,7 @@ msgstr "최소 재고"
msgid "Minimum allowed stock level"
msgstr "허용되는 최소 재고 수준"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "재고 조사 시점의 사용 가능한 총 재고"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "날짜"
@@ -6759,7 +6779,7 @@ msgstr "하위 부품"
msgid "Select part to be used in BOM"
msgstr "BOM에 사용할 부품을 선택하세요"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr "상위 카테고리"
msgid "Parent part category"
msgstr "상위 부품 카테고리"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "하위 카테고리"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "결과"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "이 템플릿에 대해 기록된 결과 수"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "이 재고 항목의 구매 통화"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "파일이 이미지가 아닙니다"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "원본 부품"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "복제할 원본 부품을 선택하세요"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "이미지 복사"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "원본 부품의 이미지를 복사합니다"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "BOM 복사"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "원본 부품의 자재 명세서(BOM)를 복사합니다"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "원본 부품의 매개변수 데이터를 복사합니다"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "메모 복사"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "원본 부품의 메모를 복사합니다"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "테스트 복사"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "원본 부품의 테스트 템플릿을 복사합니다"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "초기 재고 수량"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "이 부품의 초기 재고 수량을 지정하세요. 수량이 0이면 재고가 추가되지 않습니다."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "초기 재고 위치"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "이 부품의 초기 재고 위치를 지정하세요"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "공급업체를 선택하세요(또는 비워 두고 건너뛰기)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "제조사를 선택하세요(또는 비워 두고 건너뛰기)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "제조사 부품 번호"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "선택한 회사는 유효한 공급업체가 아닙니다"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "선택한 회사는 유효한 제조사가 아닙니다"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "이 MPN과 일치하는 제조사 부품이 이미 존재합니다"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "이 SKU와 일치하는 공급업체 부품이 이미 존재합니다"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "카테고리 이름"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "제작 중"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "현재 생산 중인 이 부품의 수량"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "제작 예정인 이 부품의 미완료 수량"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "재고 항목"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "개정"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "총 재고"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "미할당 재고"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "변형 재고"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "부품 복제"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "다른 부품에서 초기 데이터를 복사합니다"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "초기 재고"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "초기 재고 수량과 함께 부품을 생성합니다"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "공급업체 정보"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "이 부품에 대한 초기 공급업체 정보를 추가합니다"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "카테고리 매개변수 복사"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "선택한 부품 카테고리의 매개변수 템플릿을 복사합니다"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "기존 이미지"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "기존 부품 이미지의 파일명"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "이미지 파일이 존재하지 않습니다"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "전체 자재 명세서(BOM) 검증"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "제작 가능"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "제작 주문에 필요"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "제작 주문에 할당됨"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "판매 주문에 필요"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "판매 주문에 할당됨"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr "부품 IPN"
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr "부품 설명"
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "재고 조사 정보를 생성할 부품을 선택하세요(및 모든 변형 부품)."
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "해당 카테고리(및 하위 카테고리)의 모든 부품을 포함할 카테고리를 선택하세요"
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "해당 위치(하위 위치 포함)에 재고가 있는 모든 부품을 포함할 위치를 선택하세요"
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr "재고 조사 항목 생성"
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr "선택한 부품에 대한 재고 조사 항목을 저장합니다"
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr "보고서 생성"
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr "선택한 부품에 대한 재고 조사 보고서를 생성합니다"
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "최소 가격"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "계산된 최소 가격 값을 재정의합니다"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "최소 가격 통화"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "최대 가격"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "계산된 최대 가격 값을 재정의합니다"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "최대 가격 통화"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "업데이트"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "이 부품의 가격 정보를 업데이트합니다"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "제공된 통화를 {default_currency}(으)로 변환할 수 없습니다"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "최소 가격은 최대 가격보다 클 수 없습니다"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "최대 가격은 최소 가격보다 작을 수 없습니다"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "상위 조립품을 선택하세요"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "구성 부품을 선택하세요"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "BOM을 복사할 부품을 선택하세요"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "기존 데이터 제거"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "복사하기 전에 기존 BOM 항목을 제거합니다"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "상속 항목 포함"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "템플릿 부품에서 상속된 BOM 항목 포함"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "잘못된 행 건너뛰기"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "이 옵션을 사용하면 잘못된 행을 건너뜁니다"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "대체 부품 복사"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "BOM 항목을 복제할 때 대체 부품도 복사"
@@ -7326,91 +7346,91 @@ msgstr "작업이 지정되지 않았습니다"
msgid "No matching action found"
msgstr "일치하는 작업을 찾을 수 없습니다"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "바코드 데이터와 일치하는 항목을 찾을 수 없습니다"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "바코드 데이터와 일치하는 항목을 찾았습니다"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "지원되지 않는 모델입니다"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "모델 인스턴스를 찾을 수 없습니다"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "바코드가 기존 항목과 일치합니다"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "일치하는 부품 데이터를 찾을 수 없습니다"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "일치하는 공급업체 부품을 찾을 수 없습니다"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "일치하는 공급업체 부품이 여러 개 있습니다"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "바코드 데이터에 일치하는 플러그인을 찾을 수 없습니다"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "공급업체 부품과 일치함"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "항목이 이미 입고되었습니다"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "공급업체 바코드에 일치하는 플러그인이 없습니다"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "일치하는 라인 항목이 여러 개 있습니다"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "일치하는 라인 항목을 찾을 수 없습니다"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "판매 주문이 제공되지 않았습니다"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "바코드가 기존 재고 항목과 일치하지 않습니다"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "재고 항목이 라인 항목과 일치하지 않습니다"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "사용 가능한 재고가 부족합니다"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "재고 항목이 판매 주문에 할당되었습니다"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "정보가 충분하지 않습니다"
@@ -7992,7 +8012,7 @@ msgstr "테두리"
msgid "Print a border around each label"
msgstr "각 라벨 주위에 테두리를 인쇄합니다"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "가로"
@@ -8072,77 +8092,77 @@ msgstr "TME 바코드 스캔을 지원합니다"
msgid "The Supplier which acts as 'TME'"
msgstr "'TME' 역할을 하는 공급업체"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr "슈퍼유저 계정만 플러그인을 관리할 수 있습니다"
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "플러그인 설치가 비활성화되어 있습니다"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr "설치할 패키지 이름 또는 URL이 제공되지 않았습니다"
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr "패키지 이름 또는 URL에 잘못된 문자가 있습니다"
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "플러그인을 성공적으로 설치했습니다"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "플러그인을 {path}에 설치했습니다"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "레지스트리에서 플러그인을 찾을 수 없습니다"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "플러그인이 패키지 플러그인이 아닙니다"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "플러그인 패키지 이름을 찾을 수 없습니다"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "스태프 사용자만 플러그인을 관리할 수 있습니다"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "플러그인 제거가 비활성화되어 있습니다"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "플러그인이 현재 활성 상태이므로 제거할 수 없습니다"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr "플러그인이 필수이므로 제거할 수 없습니다"
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr "플러그인이 샘플 플러그인이므로 제거할 수 없습니다"
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr "플러그인이 내장 플러그인이므로 제거할 수 없습니다"
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "플러그인이 설치되어 있지 않습니다"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "플러그인 설치 정보를 찾을 수 없습니다"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "플러그인을 성공적으로 제거했습니다"
@@ -8194,21 +8214,21 @@ msgstr "패키지 플러그인"
msgid "Plugin"
msgstr "플러그인"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "작성자를 찾을 수 없습니다"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "플러그인 '{p}'은(는) 현재 InvenTree 버전 {v}와 호환되지 않습니다"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "플러그인은 최소 버전 {v}가 필요합니다"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "플러그인은 최대 버전 {v}까지 지원합니다"
@@ -8481,136 +8501,136 @@ msgstr "Legal"
msgid "Letter"
msgstr "Letter"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "이 이름의 템플릿 파일이 이미 존재합니다"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "템플릿 이름"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "템플릿 설명"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "리비전 번호(자동 증가)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "인쇄 시 모델에 첨부"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "인쇄 시 보고서 출력물을 연결된 모델 인스턴스에 첨부파일로 저장합니다"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "파일명 패턴"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "파일명을 생성하기 위한 패턴"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "템플릿이 활성화됨"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "템플릿 대상 모델 유형"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "필터"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "템플릿 쿼리 필터(쉼표로 구분된 key=value 쌍 목록)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "템플릿 파일"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "PDF 보고서 페이지 크기"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "보고서를 가로 방향으로 렌더링"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "병합"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr "선택한 항목에 대해 단일 보고서를 렌더링합니다"
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "템플릿 {self.name}에서 생성된 보고서"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr "템플릿 구문 오류"
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr "보고서 렌더링 오류"
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "보고서 생성 오류"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr "보고서 출력 병합 오류"
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "너비 [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "라벨 너비(mm)"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "높이 [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "라벨 높이(mm)"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "라벨 인쇄 오류"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "스니펫"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "보고서 스니펫 파일"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "스니펫 파일 설명"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "자산"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "보고서 자산 파일"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "자산 파일 설명"
@@ -8766,200 +8786,200 @@ msgstr "결과 없음"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr "잘못된 미디어 파일 경로"
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr "잘못된 정적 파일 경로"
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr "자산 파일을 찾을 수 없습니다"
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "이미지 파일을 찾을 수 없습니다"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr "이미지 파일이 지정되지 않았습니다"
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "part_image 태그에는 Part 인스턴스가 필요합니다"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "company_image 태그에는 Company 인스턴스가 필요합니다"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "위치 깊이로 필터"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "최상위 위치로 필터"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "필터 결과에 하위 위치를 포함합니다"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "상위 위치"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "상위 위치로 필터"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "부품명(대소문자 구분 없음)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "부품명 포함(대소문자 구분 없음)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "부품명(정규식)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "부품 IPN(대소문자 구분 없음)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "부품 IPN 포함(대소문자 구분 없음)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "부품 IPN(정규식)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "최소 재고"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "최대 재고"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "상태 코드"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "외부 위치"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "작업 지시서에서 소비됨"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "다른 재고 품목에 설치됨"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "부품 트리"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "업데이트 날짜 이전"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "업데이트 날짜 이후"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "재고조사 날짜 이전"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "재고조사 날짜 이후"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "유효기간 날짜 이전"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "유효기간 날짜 이후"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "장기 재고"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr "제외할 재고 품목 PK를 제공하면 해당 품목과 모든 하위 항목을 제외합니다"
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr "위치 계단식 적용"
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr "true이면 지정한 위치의 하위 위치에 있는 항목을 포함합니다"
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr "숫자 Location ID 또는 'null' 리터럴로 필터"
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "수량이 필요합니다"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "유효한 부품을 제공해야 합니다"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "지정한 공급업체 부품이 존재하지 않습니다"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "공급업체 부품에 포장 단위가 정의되어 있지만 use_pack_size 플래그가 설정되지 않았습니다"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "추적 불가능한 부품에는 시리얼 번호를 제공할 수 없습니다"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr "설치된 항목 포함"
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr "true이면 지정한 재고 품목 아래에 설치된 항목의 테스트 결과를 포함합니다"
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr "숫자 재고 품목 ID로 필터"
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr "ID가 {id}인 재고 품목이 존재하지 않습니다"
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr "부품 변형 포함"
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr "날짜 이후"
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr "날짜 이전"
@@ -8995,7 +9015,7 @@ msgstr "소유자 선택"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "재고 품목은 구조적 재고 위치에 직접 배치할 수 없으며, 하위 위치에 배치할 수 있습니다."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "외부"
@@ -9101,7 +9121,7 @@ msgstr "이 재고 품목에 맞는 공급업체 부품을 선택하세요"
msgid "Where is this stock item located?"
msgstr "이 재고 품목은 어디에 있습니까?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "이 재고 품목이 보관된 포장재"
@@ -9117,7 +9137,7 @@ msgstr "이 항목이 다른 항목에 설치되어 있습니까?"
msgid "Serial number for this item"
msgstr "이 항목의 시리얼 번호"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "이 재고 품목의 배치 코드"
@@ -9206,7 +9226,7 @@ msgstr "수량이 시리얼 번호와 일치하지 않습니다"
msgid "Cannot assign stock to structural location"
msgstr "구조적 위치에 재고를 할당할 수 없습니다"
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "테스트 템플릿이 존재하지 않습니다"
@@ -9226,7 +9246,7 @@ msgstr "재고 품목에 다른 품목이 포함되어 있습니다"
msgid "Stock item has been assigned to a customer"
msgstr "재고 품목이 고객에게 할당되었습니다"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "재고 품목이 현재 생산 중입니다"
@@ -9234,7 +9254,7 @@ msgstr "재고 품목이 현재 생산 중입니다"
msgid "Serialized stock cannot be merged"
msgstr "시리얼 추적 재고는 병합할 수 없습니다"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "중복 재고 품목"
@@ -9250,71 +9270,71 @@ msgstr "재고 항목은 동일한 공급업체 부품을 참조해야 합니다
msgid "Stock status codes must match"
msgstr "재고 상태 코드는 일치해야 합니다"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "재고에 없으므로 재고 항목을 이동할 수 없습니다"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "재고 항목 추적"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "항목 메모"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "재고 항목 테스트 결과"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "이 테스트에는 값을 제공해야 합니다"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "이 테스트에는 첨부 파일을 업로드해야 합니다"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "이 테스트의 값이 올바르지 않습니다"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "테스트 결과"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "테스트 출력 값"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "테스트 결과 첨부 파일"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "테스트 메모"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "테스트 스테이션"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "테스트가 수행된 테스트 스테이션의 식별자"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "시작됨"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "테스트 시작 시각"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "완료됨"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "테스트 종료 시각"
@@ -9398,7 +9418,7 @@ msgstr "새 항목의 일련 번호를 입력하세요"
msgid "Supplier Part Number"
msgstr "공급업체 부품 번호"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "만료됨"
@@ -9428,8 +9448,8 @@ msgstr "재고 항목이 제공되지 않았습니다"
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "수량은 사용 가능한 재고 수량({q})을(를) 초과할 수 없습니다"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "대상 재고 위치"
@@ -9501,127 +9521,131 @@ msgstr "상태를 변경할 재고 항목을 선택하세요"
msgid "No stock items selected"
msgstr "선택된 재고 항목이 없습니다"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "하위 위치"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "상위 재고 위치"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "부품은 판매 가능해야 합니다"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "항목이 판매 주문에 할당되어 있습니다"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "항목이 제조 주문에 할당되어 있습니다"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "재고 항목을 할당할 고객"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "선택한 회사는 고객이 아닙니다"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "재고 할당 메모"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "재고 항목 목록을 제공해야 합니다"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "재고 병합 메모"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "공급업체 불일치 허용"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "공급업체 부품이 다른 재고 항목의 병합을 허용합니다"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "상태 불일치 허용"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "상태 코드가 다른 재고 항목의 병합을 허용합니다"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "최소 두 개의 재고 항목을 제공해야 합니다"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "변경 없음"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "재고 항목 기본 키 값"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "재고 항목이 재고에 없습니다"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr "재고 항목이 이미 재고에 있습니다"
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr "수량은 음수일 수 없습니다"
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "재고 거래 메모"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr "기존 재고로 병합"
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "재고 거래 메모"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr "가능하면 반품된 항목을 기존 재고 항목에 병합합니다"
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "다음 일련 번호"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "이전 일련 번호"
@@ -9919,7 +9943,7 @@ msgstr "권한"
msgid "Important dates"
msgstr "중요 날짜"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "토큰이 취소되었습니다"
@@ -9927,163 +9951,163 @@ msgstr "토큰이 취소되었습니다"
msgid "Token has expired"
msgstr "토큰이 만료되었습니다"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API 토큰"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API 토큰"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "토큰 이름"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "사용자 지정 토큰 이름"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "토큰 만료일"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "마지막 사용"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "토큰이 마지막으로 사용된 시간"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "취소됨"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "권한 세트"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "보기"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "항목을 볼 권한"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "추가"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "항목을 추가할 권한"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "변경"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "항목을 수정할 권한"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "삭제"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "항목을 삭제할 권한"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "봇"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "내부"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "게스트"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "언어"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "사용자의 선호 언어"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "테마"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "웹 UI 설정(JSON) - 수동으로 편집하지 마세요!"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "위젯"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "대시보드 위젯 설정(JSON) - 수동으로 편집하지 마세요!"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "표시 이름"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "사용자가 선택한 표시 이름"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "직책"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "주요 직함 또는 직책"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "사용자 상태 메시지"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "사용자 위치 정보"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "사용자가 시스템을 사용 중입니다"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "사용자가 선호하는 연락처 정보"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "사용자 유형"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "어떤 유형의 사용자입니까?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "조직"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "사용자의 기본 조직/소속"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "기본 그룹"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "사용자의 기본 그룹"
diff --git a/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po
index 4cc332cf7d..e1487a2ee8 100644
--- a/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Lithuanian\n"
"Language: lt_LT\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API galinis taškas nerastas"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Elementai turi būti pateikti kaip sąrašas"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Pateiktas neteisingas elementų sąrašas"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Filtras „all“ gali būti naudojamas tik su reikšme „true“"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Nė vienas elementas neatitinka pateiktų kriterijų"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Vartotojas neturi teisių peržiūrėti šio modelio"
@@ -65,11 +65,11 @@ msgstr "El. pašto adreso patvirtinimas"
msgid "You must type the same email each time."
msgstr "Kiekvieną kartą turite įvesti tą patį el. pašto adresą."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Pateiktas pagrindinis el. pašto adresas neteisingas."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Pateiktas el. pašto domenas nepatvirtintas."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Nepavyko konvertuoti {original} į {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Pateiktas neteisingas kiekis"
@@ -105,22 +105,22 @@ msgstr "Įveskite datą"
msgid "Invalid decimal value"
msgstr "Neteisinga dešimtainė reikšmė"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Pastabos"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Reikšmė „{name}“ neatitinka šablono formato"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Pateikta reikšmė neatitinka reikalaujamo šablono: "
@@ -164,51 +164,51 @@ msgstr "Pašalinkite HTML žymes iš šios reikšmės"
msgid "Data contains prohibited markdown content"
msgstr "Duomenyse yra draudžiamo „markdown“ turinio"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Ryšio klaida"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Serveris grąžino netinkamą būsenos kodą"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Įvyko išimtis"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Serveris grąžino neteisingą „Content-Length“ reikšmę"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Paveikslėlio dydis per didelis"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Paveikslėlio atsisiuntimas viršijo maksimalų leistiną dydį"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Nutolęs serveris grąžino tuščią atsakymą"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Nurodytas URL nėra tinkamas paveikslėlio failas"
@@ -220,117 +220,121 @@ msgstr "Prisijungti prie programos"
msgid "Email"
msgstr "El. paštas"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Prieš atliekant bet kokius veiksmus, privalote įjungti dviejų veiksnių autentifikavimą."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Klaida vykdant įskiepio patvirtinimą"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metaduomenys turi būti „Python“ žodyno tipo objektas"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Įskiepio metaduomenys"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON metaduomenų laukas, skirtas naudoti išoriniams įskiepiams"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Netinkamai suformuotas šablonas"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Nurodytas nežinomas formato raktas"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Trūksta būtino formato rakto"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "\"Nuorodos laukas negali būti tuščias"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Nuoroda turi atitikti reikalaujamą šabloną"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Nuorodos numeris per didelis"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Neteisingas pasirinkimas"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Pavadinimas"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Aprašymas"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Aprašymas (neprivalomas)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Kelias"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Po tuo pačiu pirminiu elementu negali būti pasikartojančių pavadinimų"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Pastabos su „Markdown“ (neprivalomas)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Brūkšninio kodo duomenys"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Trečiosios šalies brūkšninio kodo duomenys"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Brūkšninio kodo maiša"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Unikali brūkšninio kodo duomenų maiša\""
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Rastas esamas brūkšninis kodas"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Serverio klaida"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Serveris užfiksavo klaidą."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Turi būti teisingas skaičius"
msgid "Currency"
msgstr "Valiuta"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Pasirinkite valiutą iš galimų variantų"
@@ -521,11 +525,11 @@ msgstr "Kinų (supaprastinta)"
msgid "Chinese (Traditional)"
msgstr "Kinų (tradicinė)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr "Neteisingas fizinis vienetas"
msgid "Not a valid currency code"
msgstr "Netinkamas valiutos kodas"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Užsakymo būsena"
@@ -546,23 +550,23 @@ msgstr "Užsakymo būsena"
msgid "Parent Build"
msgstr "Pirminė gamyba"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Įtraukti variantus"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Įtraukti variantus"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Įtraukti variantus"
msgid "Part"
msgstr "Detalė"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Kategorija"
@@ -593,7 +597,7 @@ msgstr "Kategorija"
msgid "Ancestor Build"
msgstr "Ankstesnė gamyba"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Priskirta man"
@@ -601,11 +605,11 @@ msgstr "Priskirta man"
msgid "Assigned To"
msgstr "Priskirta"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Sukurta prieš"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Sukurta po"
@@ -641,99 +645,99 @@ msgstr "Užbaigta prieš"
msgid "Completed after"
msgstr "Užbaigta po"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Minimali data"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Maksimali data"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Neįtraukti medžio struktūros"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Prieš ištrinant gamybą, ji turi būti atšaukta"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Sunaudojama"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Pasirinktinai"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Surinkimas"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Sekama"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Testuojama"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Liko neįvykdytų užsakymų"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Priskirta"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Prieinama"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "Užsakyta"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Gamybos užsakymas"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Vieta"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr "Tikslinė data turi būti po pradžios datos"
msgid "Build Order Reference"
msgstr "Gamybos užsakymo nuoroda"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Pardavimo užsakymo nuoroda"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Šaltinio vieta"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Paskirties vieta"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Gamybos būsenos kodas"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Partijos kodas"
@@ -883,8 +887,8 @@ msgstr "Tikslinė užbaigimo data"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Planuojama gamybos pabaigos data. Po šios datos gamyba bus pavėluota."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Užbaigimo data"
@@ -900,7 +904,7 @@ msgstr "Išdavė"
msgid "User who issued this build order"
msgstr "Vartotojas, kuris išdavė šį gamybos užsakymą"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Šio gamybos užsakymo prioritetas"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Projekto kodas"
@@ -962,9 +966,9 @@ msgstr "Gamybos rezultatas neatitinka gamybos užsakymo"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Kiekis turi būti didesnis nei nulis"
@@ -999,7 +1003,7 @@ msgstr "Gamybos objektas"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Atsargoms su serijos numeriais kiekis turi būti 1"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Priskirtas kiekis ({q}) negali viršyti galimo atsargų kiekio ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Atsargų elementas per daug paskirstytas"
@@ -1057,8 +1061,8 @@ msgstr "Atsargų elementas per daug paskirstytas"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Atsargų elementas"
@@ -1082,7 +1086,7 @@ msgstr "Paskirties atsargų elementas"
msgid "Build Level"
msgstr "Gamybos lygis"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Detalės pavadinimas"
@@ -1139,7 +1143,7 @@ msgstr "Automatiškai priskirti serijos numerius"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Automatiškai priskirti reikalingas prekes su atitinkančiais serijos numeriais"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Šie serijos numeriai jau egzistuoja arba yra neteisingi"
@@ -1272,7 +1276,7 @@ msgstr "Gamybos eilutės įrašas"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part turi būti ta pati detalė kaip ir gamybos užsakyme"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Prekė turi būti atsargose"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr "Gamyba"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Tiekėjo detalė"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Leisti variantus"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "BOM elementas"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "Gamyboje"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Išorinės atsargos"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Prieinamos atsargos"
@@ -1527,31 +1531,31 @@ msgstr "Vėluojantis gamybos užsakymas"
msgid "Build order {bo} is now overdue"
msgstr "Gamybos užsakymas {bo} dabar vėluoja"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "Yra nuoroda"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "Yra failas"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "Vartotojas neturi teisės ištrinti šių priedų"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "Vartotojas neturi teisės ištrinti šio priedo"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Pasirinkimų sąrašas yra užrakintas"
@@ -1571,8 +1575,8 @@ msgstr "Nepateikta jokių galiojančių valiutos kodų"
msgid "No plugin"
msgstr "Nėra papildinio"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "Raktas turi būti unikalus"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Vartotojas"
@@ -1654,8 +1658,8 @@ msgstr "Vartotojas"
msgid "Price break quantity"
msgstr "Kiekio ribinis taškas kainai"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Kaina"
@@ -1677,8 +1681,8 @@ msgstr "Šio webhook'o pavadinimas"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktyvus"
@@ -1686,7 +1690,7 @@ msgstr "Aktyvus"
msgid "Is this webhook active"
msgstr "Ar šis webhook'as aktyvus"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Raktas"
@@ -1756,7 +1760,7 @@ msgstr "Pavadinimas"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Apibrėžimas"
msgid "Unit definition"
msgstr "Vieneto apibrėžimas"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Priedas"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "Loginis būsenos raktas, atitinkantis šią pasirinkitinę būseną"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Reikšmė"
@@ -2172,7 +2176,7 @@ msgstr "Galimi pasirinkimai šiam parametrui (atskirti kableliais)"
msgid "Selection list for this parameter"
msgstr "Pasirinkimų sąrašas šiam parametrui"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Įjungta"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Šablonas"
@@ -2262,7 +2266,7 @@ msgstr "Brūkšninio kodo nuskaitymo data ir laikas"
msgid "URL endpoint which processed the barcode"
msgstr "URL galutinis taškas, kuris apdorojo brūkšninį kodą"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Kontekstas"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Atsako duomenys iš brūkšninio kodo nuskaitymo"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Rezultatas"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Raktas"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} atšaukta"
msgid "A order that is assigned to you was canceled"
msgstr "Užsakymas, kuris buvo jums priskirtas, buvo atšauktas"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Gautos prekės"
@@ -2524,7 +2528,7 @@ msgstr "Failo pavadinimas"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Modelio tipas"
@@ -2669,8 +2673,8 @@ msgstr "Kaip dažnai atnaujinti valiutų kursus (nulis – išjungti)"
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "dienos"
@@ -2914,8 +2918,8 @@ msgstr "Detalės pagal nutylėjimą yra šablonai"
msgid "Parts can be assembled from other components by default"
msgstr "Detalės pagal nutylėjimą gali būti surenkamos iš kitų komponentų"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Komponentas"
@@ -2931,7 +2935,7 @@ msgstr "Galima įsigyti"
msgid "Parts are purchaseable by default"
msgstr "Detalės pagal nutylėjimą gali būti įsigyjamos"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Parduodama"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Registruoti klaidas, įvykusias generuojant ataskaitas"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Puslapio dydis"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Leisti perkelti atsargas tarp vietų net jei jų nėra atsargose"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Gamybos užsakymo nuorodos šablonas"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Privalomas šablonas gamybos užsakymo nuorodos laukui generuoti"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Reikalauti atsakingo savininko"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Kiekvienam užsakymui turi būti priskirtas atsakingas savininkas"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Reikalauti aktyvios detalės"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Neleidžia kurti gamybos užsakymų neaktyvioms detalėms"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Reikalauti užrakintos detalės"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Neleidžia kurti gamybos užsakymų neužrakintoms detalėms"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "Reikalauti galiojančio komplektavimo sąrašo (BOM)"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Neleidžia kurti gamybos užsakymų, kol BOM nėra patvirtintas"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "Reikalauti uždarytų antrinių užsakymų"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Neleidžia užbaigti gamybos užsakymo, kol visi antriniai užsakymai neuždaryti"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Blokuoti, kol testai bus išlaikyti"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Neleidžia užbaigti gaminių, kol visi privalomi testai nėra išlaikyti"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Įjungti grąžinimo užsakymus"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Įjungia grąžinimo užsakymų funkciją vartotojo sąsajoje"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Grąžinimo užsakymo nuorodos šablonas"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Būtinas šablonas grąžinimo užsakymo nuorodos laukui generuoti"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Redaguoti užbaigtus grąžinimo užsakymus"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Leisti redaguoti grąžinimo užsakymus po jų užbaigimo"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Pardavimo užsakymo nuorodos šablonas"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Būtinas šablonas pardavimo užsakymo nuorodos laukui generuoti"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Numatytasis siuntinys pardavimo užsakymui"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Leisti automatiškai sukurti siuntinį kartu su pardavimo užsakymu"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Redaguoti užbaigtus pardavimo užsakymus"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Leisti redaguoti pardavimo užsakymus po jų išsiuntimo arba užbaigimo"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Pažymėti išsiųstus užsakymus kaip užbaigtus"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Pardavimo užsakymai, pažymėti kaip išsiųsti, bus automatiškai užbaigti, praleidžiant būseną „išsiųsta“"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Pirkimo užsakymo nuorodos šablonas"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Būtinas šablonas pirkimo užsakymo nuorodos laukui generuoti"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Redaguoti užbaigtus pirkimo užsakymus"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Leisti redaguoti pirkimo užsakymus po jų išsiuntimo arba užbaigimo"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Konvertuoti valiutą"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "Konvertuoti prekių vertę į pagrindinę valiutą priimant prekes"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Automatiškai užbaigti pirkimo užsakymus"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Automatiškai pažymėti pirkimo užsakymus kaip užbaigtus, kai visos eilutės yra gautos"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Įjungti pamiršto slaptažodžio funkciją"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Leisti naudoti pamiršto slaptažodžio funkciją prisijungimo puslapyje"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Įjungti registraciją"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Leisti vartotojams savarankiškai registruotis prisijungimo puslapyje"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Įjungti vieningą prisijungimą (SSO)"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Įjungti vieningą prisijungimą (SSO) prisijungimo puslapyje"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Įjungti registraciją per SSO"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Leisti vartotojams registruotis per SSO prisijungimo puslapyje"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "Įjungti SSO grupių sinchronizavimą"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Įjungti InvenTree grupių sinchronizavimą su tapatybės tiekėjo (IdP) grupėmis"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "SSO grupės raktas"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "Grupių atributo pavadinimas, kurį pateikia tapatybės tiekėjas (IdP)"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "SSO grupių susiejimas"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "SSO grupių susiejimas su vietinėmis InvenTree grupėmis. Jei vietinė grupė neegzistuoja, ji bus sukurta."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Pašalinti grupes, nepriklausančias SSO"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "Ar pašalinti vartotojui priskirtas grupes, jei jos nėra pateikiamos per IdP. Išjungus gali kilti saugumo problemų"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "El. paštas privalomas"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Reikalauti vartotojo el. pašto registracijos metu"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Automatiškai užpildyti SSO naudotojų duomenis"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Automatiškai užpildyti vartotojo informaciją pagal SSO paskyros duomenis"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Įvesti el. paštą du kartus"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Registracijos metu prašyti vartotojų du kartus įvesti el. paštą"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Įvesti slaptažodį du kartus"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Registracijos metu prašyti vartotojų du kartus įvesti slaptažodį"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Leidžiami domenai"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Riboti registraciją tik tam tikriems domenams (atskiriama kableliais, prasideda @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Grupė registruojantis"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Grupė, į kurią priskiriami nauji vartotojai registracijos metu. Jei įjungta SSO grupių sinchronizacija, ši grupė nustatoma tik tuo atveju, jei grupė negaunama iš IdP."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Reikalauti kelių veiksnių autentifikacijos (MFA)"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Vartotojai privalo naudoti kelių veiksnių apsaugą."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Tikrinti įskiepius paleidimo metu"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Tikrina, ar visi įskiepiai įdiegti paleidžiant – naudoti konteinerių aplinkose"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Tikrinti įskiepių atnaujinimus"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Įjungti periodinius įdiegtų įskiepių atnaujinimų tikrinimus"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Įjungti URL integravimą"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Leisti įskiepiams pridėti URL maršrutus"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Įjungti navigacijos integraciją"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Leisti įskiepiams integruotis į navigaciją"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Įjungti programų integraciją"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Leisti įskiepiams pridėti programas"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Įjungti planavimo integraciją"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Leisti įskiepiams vykdyti suplanuotas užduotis"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Įjungti įvykių integraciją"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Leisti įskiepiams reaguoti į vidinius įvykius"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Įjungti sąsajos integraciją"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Leisti įskiepiams integruotis į vartotojo sąsają"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "Įjungti projektų kodus"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Įjungti projektų kodų naudojimą projektų sekimui"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Neįtraukti išorinių vietų"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Automatinės inventorizacijos periodas"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Rodyti pilnus vartotojų vardus"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Rodyti pilnus vardus vietoj vartotojo vardų"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "Rodyti vartotojų profilius"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "Rodyti vartotojų profilius jų paskyros puslapyje"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Įjungti bandymų stoties duomenis"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Įjungti bandymų stoties duomenų rinkimą testų rezultatams"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "Nepateiktas priedų modelio tipas"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Neteisingas priedų modelio tipas"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "Mažiausias vietų skaičius negali būti didesnis nei didžiausias"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "Didžiausias vietų skaičius negali būti mažesnis nei mažiausias"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Tuščias domenas neleidžiamas."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Neteisingas domeno pavadinimas: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "Reikšmė turi būti didžiosiomis raidėmis"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "Reikšmė turi būti galiojantis kintamojo identifikatorius"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "Tiekėjas yra aktyvus"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Gamintojas"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Įmonė"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Kontaktinis el. pašto adresas"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Kontaktinis asmuo"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Adresas"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Nuoroda į adreso informaciją (išorinė)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Gamintojo detalė"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Pasirinkite gamintoją"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "MPN"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Susieta gamintojo detalė turi nurodyti tą pačią pagrindinę detalę"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Tiekėjas"
@@ -4448,7 +4460,7 @@ msgstr "Tiekėjas"
msgid "Select supplier"
msgstr "Pasirinkite tiekėją"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Tiekėjo sandėlio numeris (SKU)"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimalus mokestis (pvz., sandėliavimo mokestis)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Pakuotė"
@@ -4533,7 +4545,7 @@ msgstr "Numatytoji valiuta, naudojama šiam tiekėjui"
msgid "Company Name"
msgstr "Įmonės pavadinimas"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Sandėlyje"
@@ -4722,7 +4734,7 @@ msgstr "Pradiniai eilutės duomenys"
msgid "Errors"
msgstr "Klaidos"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Galiojantis"
@@ -4838,7 +4850,7 @@ msgstr "Etiketės spausdinamų kopijų skaičius"
msgid "Connected"
msgstr "Prijungta"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Nežinoma"
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Grupė"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Užsakymo nuoroda"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Neįvykdyta"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Turi projekto kodą"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Sukūrė"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Sukurta prieš"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Sukurta po"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "Turi pradžios datą"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "Pradžios data prieš"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "Pradžios data po"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "Turi tikslinę datą"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Tikslinė data prieš"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Tikslinė data po"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Turi kainodarą"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Užbaigta prieš"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Užbaigta po"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Užsakymas"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Užsakymas įvykdytas"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Vidinė detalė"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Užsakymas laukia vykdymo"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Užbaigta"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Turi siuntą"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Pirkimo užsakymas"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Pirkimo užsakymas"
msgid "Sales Order"
msgstr "Pardavimo užsakymas"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Grąžinimo užsakymas"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr "Užsakymo aprašymas (neprivalomas)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Pasirinkite projekto kodą šiam užsakymui"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Nuoroda į išorinį puslapį"
@@ -5151,7 +5163,7 @@ msgstr "Pradžios data"
msgid "Scheduled start date for this order"
msgstr "Numatyta pradžios data šiam užsakymui"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Tikslinė data"
@@ -5184,487 +5196,487 @@ msgstr "Kontaktinis asmuo šiam užsakymui"
msgid "Company address for this order"
msgstr "Įmonės adresas šiam užsakymui"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Užsakymo nuoroda"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Būsena"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Pirkimo užsakymo būsena"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Įmonė, iš kurios užsakomos prekės"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Tiekėjo nuoroda"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Tiekėjo užsakymo nuorodos kodas"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "gavo"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Data, kada užsakymas buvo užbaigtas"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Paskirties vieta"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Paskirties vieta gautoms prekėms"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Detalių tiekėjas turi atitikti pirkimo užsakymo tiekėją"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Eilutės įrašas neatitinka pirkimo užsakymo"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Kiekis turi būti teigiamas skaičius"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Klientas"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Įmonė, kuriai prekės parduodamos"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Pardavimo užsakymo būsena"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Kliento nuoroda"
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Kliento užsakymo nuorodos kodas"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Siuntos data"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "išsiuntė"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "Užsakymas jau baigtas"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "Užsakymas jau atšauktas"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Tik atviras užsakymas gali būti pažymėtas kaip užbaigtas"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Užsakymas negali būti užbaigtas, nes yra neišsiųstų siuntų"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "Užsakymas negali būti užbaigtas, nes yra nepriskirtų prekių"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Užsakymas negali būti užbaigtas, nes yra neužbaigtų eilučių"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "Užsakymas užrakintas ir negali būti keičiamas"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Prekės kiekis"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Eilutės įrašo nuoroda"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Eilutės įrašo pastabos"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Tikslinė šio eilutės įrašo data (palikite tuščią, jei norite naudoti užsakymo tikslinę datą)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Eilutės įrašo aprašymas (neprivalomas)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Papildomas kontekstas šiai eilutei"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Vieneto kaina"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "Pirkimo užsakymo eilutės įrašas"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "Tiekėjo detalė turi atitikti tiekėją"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Tiekėjo detalė"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Gauta"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Gautų prekių kiekis"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Pirkimo kaina"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Vieneto pirkimo kaina"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "Pirkimo užsakymo papildoma eilutė"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "Pardavimo užsakymo eilutės įrašas"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Tik parduodamos detalės gali būti priskirtos pardavimo užsakymui"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Pardavimo kaina"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Vieneto pardavimo kaina"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Išsiųsta"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Išsiųstas kiekis"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "Pardavimo užsakymo siunta"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Siuntos data"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Pristatymo data"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Siuntos pristatymo data"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Patikrino"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Vartotojas, patikrinęs šią siuntą"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Siunta"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Siuntos numeris"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Sekimo numeris"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Siuntos sekimo informacija"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Sąskaitos faktūros numeris"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Nuorodos numeris susijusiai sąskaitai faktūrai"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Siunta jau buvo išsiųsta"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Siunta neturi priskirtų prekių"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "Pardavimo užsakymo papildoma eilutė"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "Pardavimo užsakymo paskirstymas"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "Prekė nėra priskirta"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Negalima priskirti prekių eilutei su skirtinga detale"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Negalima priskirti prekių eilutei, jei joje nėra detalės"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Priskiriamas kiekis negali viršyti atsargų kiekio"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Priskirtas kiekis turi būti didesnis nei nulis"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Kiekis turi būti 1, jei prekė turi serijos numerį"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Pardavimo užsakymas nesutampa su siunta"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Siunta nesutampa su pardavimo užsakymu"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Eilutė"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Pardavimo užsakymo siuntos nuoroda"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Prekė"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Pasirinkite atsargų elementą priskyrimui"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Įveskite prekių priskyrimo kiekį"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Grąžinimo užsakymo nuoroda"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Įmonė, iš kurios grąžinamos prekės"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Grąžinimo užsakymo būsena"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "Grąžinimo užsakymo eilutės įrašas"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "Turi būti nurodytas atsargų elementas"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "Grąžinamo kiekis viršija prekių kiekį"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "Grąžinamo kiekis turi būti daugiau nei nulis"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Neteisingas kiekis serijinio numerio prekei"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Pasirinkite prekę grąžinimui iš kliento"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Gavimo data"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Rezultatas"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Rezultatas šiam eilutės įrašui"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Išlaidos, susijusios su šio eilutės įrašo grąžinimu ar remontu"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "Grąžinimo užsakymo papildoma eilutė"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr "Kopijuoti papildomas eilutes"
msgid "Copy extra line items from the original order"
msgstr "Kopijuoti papildomas eilutes iš pradinio užsakymo"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Kopijuoti parametrus"
@@ -5784,11 +5796,11 @@ msgstr "Sujungti elementus"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Sujungti elementus su ta pačia detale, paskirtimi ir tiksline data į vieną eilutės įrašą"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Vidinis detalės numeris"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Įveskite partijos kodą gaunamoms atsargoms"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Galiojimo data"
@@ -6056,123 +6068,131 @@ msgstr "Vėluojantis grąžinimo užsakymas"
msgid "Return order {ro} is now overdue"
msgstr "Grąžinimo užsakymas {ro} dabar vėluoja"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Pažymėta žvaigždute"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Filtruoti pagal pažymėtas kategorijas"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Gylis"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Filtruoti pagal kategorijos gylį"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Aukščiausio lygio"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Filtruoti pagal aukščiausio lygio kategorijas"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Kaskada"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Įtraukti sub-kategorijas į filtravimo rezultatus"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Pirminė kategorija"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Filtruoti pagal pirminę kategoriją"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Neįtraukti sub-kategorijų po nurodyta kategorija"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Turi rezultatų"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "Yra variantas"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "Yra versija"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "Turi versijų"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "BOM galiojantis"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "Surinkimo detalė gali būti testuojama"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "Komponento detalė gali būti testuojama"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Naudoja"
@@ -6213,7 +6233,7 @@ msgstr "Numatytieji raktažodžiai detalėms šioje kategorijoje"
msgid "Icon"
msgstr "Piktograma"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Piktograma (neprivaloma)"
@@ -6349,7 +6369,7 @@ msgstr "Detalės raktažodžiai, skirti pagerinti matomumą paieškos rezultatuo
msgid "Part category"
msgstr "Detalės kategorija"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6358,7 +6378,7 @@ msgstr "IPN"
msgid "Part revision or version number"
msgstr "Detalės versija arba numeris"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Versija"
@@ -6382,7 +6402,7 @@ msgstr "Numatytasis galiojimo laikas"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Šios detalės atsargų galiojimo laikas (dienomis)"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Minimalus atsargų kiekis"
@@ -6390,7 +6410,7 @@ msgstr "Minimalus atsargų kiekis"
msgid "Minimum allowed stock level"
msgstr "Mažiausias leidžiamas atsargų kiekis"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Bendras prieinamas atsargų kiekis inventorizacijos metu"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Data"
@@ -6759,7 +6779,7 @@ msgstr "Pavaldi detalė"
msgid "Select part to be used in BOM"
msgstr "Pasirinkite detalę, naudojamą BOM"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr "Pagrindinė kategorija"
msgid "Parent part category"
msgstr "Pagrindinė detalių kategorija"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Subkategorijos"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Rezultatai"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Rezultatų skaičius, susietas su šiuo šablonu"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Šio atsargų elemento pirkimo valiuta"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "Failas nėra paveikslėlis"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Pradinė detalė"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Pasirinkite pradinę detalę kopijavimui"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Kopijuoti paveikslėlį"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Kopijuoti paveikslėlį iš pradinės detalės"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Kopijuoti BOM"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Kopijuoti komplektavimo žiniaraštį iš pradinės detalės"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Kopijuoti parametrų duomenis iš pradinės detalės"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Kopijuoti pastabas"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Kopijuoti pastabas iš pradinės detalės"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Pradinis atsargų kiekis"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Nurodykite pradinį atsargų kiekį šiai detalei. Jei kiekis nulis - atsargos nebus pridėtos."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Pradinė atsargų vieta"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Nurodykite pradinę atsargų vietą šiai detalei"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Pasirinkite tiekėją (arba palikite tuščią, jei nenorite nurodyti)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Pasirinkite gamintoją (arba palikite tuščią, jei nenorite nurodyti)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Gamintojo detalės numeris"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "Pasirinkta įmonė nėra galiojantis tiekėjas"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "Pasirinkta įmonė nėra galiojantis gamintojas"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Detalė su šiuo gamintojo numeriu (MPN) jau egzistuoja"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Tiekėjo detalė su šiuo SKU jau egzistuoja"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Kategorijos pavadinimas"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Surinkimas"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Atsargos"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Versijos"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Bendros atsargos"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Nepriskirtos atsargos"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Variantų atsargos"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Kopijuoti detalę"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Kopijuoti pradinius duomenis iš kitos detalės"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Pradinės atsargos"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Sukurti detalę su pradiniu atsargų kiekiu"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Tiekėjo informacija"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Pridėti pradinę tiekėjo informaciją šiai detalei"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Kopijuoti kategorijos parametrus"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Kopijuoti parametrų šablonus iš pasirinktos detalių kategorijos"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Esamas paveikslėlis"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Esamos detalės paveikslėlio failo pavadinimas"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Paveikslėlio failas neegzistuoja"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Patvirtinti visą komplektavimo žiniaraštį"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Galima surinkti"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Mažiausia kaina"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Pakeisti apskaičiuotą mažiausią kainą"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Mažiausios kainos valiuta"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Didžiausia kaina"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Pakeisti apskaičiuotą didžiausią kainą"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Didžiausios kainos valiuta"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Atnaujinti"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Atnaujinti šios detalės kainodarą"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Nepavyko konvertuoti iš nurodytų valiutų į {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Mažiausia kaina negali būti didesnė už didžiausią kainą"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Didžiausia kaina negali būti mažesnė už mažiausią kainą"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "Pasirinkite pirminį surinkimą"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "Pasirinkite komponentinę detalę"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Pasirinkite detalę, iš kurios kopijuoti BOM"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Pašalinti esamus duomenis"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Pašalinti esamus BOM elementus prieš kopijuojant"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Įtraukti paveldėtus"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Įtraukti BOM elementus, paveldėtus iš šabloninių detalių"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Praleisti netinkamas eilutes"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Įjunkite šią parinktį, jei norite praleisti netinkamas eilutes"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Kopijuoti pakaitines detales"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopijuoti pakaitines detales, kai kopijuojami BOM elementai"
@@ -7326,91 +7346,91 @@ msgstr "Nenurodytas joks veiksmas"
msgid "No matching action found"
msgstr "Atitinkantis veiksmas nerastas"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Brūkšninio kodo duomenims atitikmens nerasta"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Rastas atitikmuo brūkšninio kodo duomenims"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "Modelis nepalaikomas"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "Modelio egzempliorius nerastas"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Brūkšninis kodas atitinka esamą elementą"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Atitinkančių detalės duomenų nerasta"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Tiekėjo detalių atitikmenų nerasta"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Rastos kelios atitinkančios tiekėjo detalės"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "Brūkšninio kodo duomenims atitinkančio įskiepio nerasta"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Atitinkanti tiekėjo detalė"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Prekė jau buvo priimta"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "Tiekėjo brūkšniniam kodui įskiepis nerastas"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Rasti keli atitinkantys eilutės įrašai"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Atitinkančios eilutės įrašo nerasta"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Nepateiktas pardavimo užsakymas"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Brūkšninis kodas neatitinka jokio esamo atsargų elemento"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Atsargų elementas neatitinka eilutės įrašo"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Nepakanka atsargų"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Atsargų elementas priskirtas pardavimo užsakymui"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Nepakanka informacijos"
@@ -7992,7 +8012,7 @@ msgstr "Rėmelis"
msgid "Print a border around each label"
msgstr "Spausdinti rėmelį aplink kiekvieną etiketę"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Gulsčias"
@@ -8072,77 +8092,77 @@ msgstr "Suteikia palaikymą TME brūkšninių kodų nuskaitymui"
msgid "The Supplier which acts as 'TME'"
msgstr "Tiekėjas, veikiantis kaip 'TME'"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "Įskiepių diegimas išjungtas"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Įskiepis sėkmingai įdiegtas"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Įskiepis įdiegtas į {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "Įskiepis neaptiktas registre"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "Įskiepis nėra supakuotas įskiepis"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "Įskiepio paketo pavadinimas nerastas"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "Tik personalo vartotojai gali tvarkyti įskiepius"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "Įskiepių šalinimas išjungtas"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Įskiepis negali būti pašalintas, nes šiuo metu yra aktyvus"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "Įskiepis neįdiegtas"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "Įskiepio diegimas nerastas"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "Įskiepis sėkmingai pašalintas"
@@ -8194,21 +8214,21 @@ msgstr "Pakuotės įskiepis"
msgid "Plugin"
msgstr "Įskiepis"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Autorius nerastas"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Įskiepis '{p}' nesuderinamas su dabartine InvenTree versija {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Įskiepiui reikalinga bent versija {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Įskiepiui reikalinga ne aukštesnė nei versija {v}"
@@ -8481,136 +8501,136 @@ msgstr "Legal"
msgid "Letter"
msgstr "Letter"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "Šablono failas tokiu pavadinimu jau egzistuoja"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Šablono pavadinimas"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Šablono aprašymas"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "Versijos numeris (didinamas automatiškai)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Pridėti prie modelio spausdinant"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Išsaugoti ataskaitą kaip priedą susietam modelio egzemplioriui spausdinimo metu"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Failo vardo šablonas"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "Šablonas failų vardų generavimui"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "Šablonas įjungtas"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "Šablonui skirtas modelio tipas"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtrai"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "Šablono užklausos filtrai (kableliais atskirtas key=value porų sąrašas)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Šablono failas"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Puslapio dydis PDF ataskaitoms"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Rodyti ataskaitą gulsčiai"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "Ataskaita sugeneruota iš šablono {self.name}"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "Klaida generuojant ataskaitą"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Plotis [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Etiketės plotis, nurodytas milimetrais"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Aukštis [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Etiketės aukštis, nurodytas milimetrais"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "Klaida spausdinant etiketes"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Fragmentas"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Ataskaitos fragmento failas"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Fragmento failo aprašymas"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Išteklius"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Ataskaitos ištekliaus failas"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Ištekliaus failo aprašymas"
@@ -8766,200 +8786,200 @@ msgstr "Nėra rezultato"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Paveikslėlio failas nerastas"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "Žyma part_image reikalauja detalės (Part) egzemplioriaus"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "Žyma company_image reikalauja įmonės (Company) egzemplioriaus"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "Filtruoti pagal vietos gylį"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "Filtruoti pagal aukščiausio lygio vietas"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "Įtraukti sub-vietas į filtravimo rezultatus"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Pirminė vieta"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Filtruoti pagal pirminę vietą"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Detalės pavadinimas (neskiria didžiųjų ir mažųjų raidžių)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "Detalės pavadinimas turi (neskiria didžiųjų ir mažųjų raidžių)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Detalės pavadinimas (reguliarioji išraiška)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "Detalės IPN (neskiria didžiųjų ir mažųjų raidžių)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "Detalės IPN turi (neskiria didžiųjų ir mažųjų raidžių)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "Detalės IPN (reguliarioji išraiška)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Mažiausias kiekis"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Didžiausias kiekis"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Būsenos kodas"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Išorinė vieta"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "Sunaudota gamybos užsakyme"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "Sumontuota kitame atsargų elemente"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Detalių medis"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Atnaujinta iki"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Atnaujinta po"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Inventorizacija iki"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Inventorizacija po"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Galiojimo data iki"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Galiojimo data po"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Pasenusi"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Reikalingas kiekis"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Turi būti pateikta galiojanti detalė"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "Nurodyta tiekėjo detalė neegzistuoja"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "Tiekėjo detalė turi nustatytą pakuotės dydį, bet nepažymėtas požymis use_pack_size"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Serijos numeriai negali būti pateikti detalei, kurios negalima sekti"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Pasirinkite savininką"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Atsargos negali būti tiesiogiai patalpintos į struktūrines atsargų vietas, bet gali būti patalpinti į jų sub-vietas."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Išorinė"
@@ -9101,7 +9121,7 @@ msgstr "Pasirinkite atitinkančią tiekėjo detalę šiam atsargų elementui"
msgid "Where is this stock item located?"
msgstr "Kur yra šis atsargų elementas?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Pakuotė, kurioje laikomas šis atsargų elementas"
@@ -9117,7 +9137,7 @@ msgstr "Ar šis elementas yra sumontuotas kitame elemente?"
msgid "Serial number for this item"
msgstr "Šio elemento serijos numeris"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Šio atsargų elemento partijos kodas"
@@ -9206,7 +9226,7 @@ msgstr "Kiekis nesutampa su serijos numeriais"
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "Bandomasis šablonas neegzistuoja"
@@ -9226,7 +9246,7 @@ msgstr "Atsargų elementas turi kitų elementų"
msgid "Stock item has been assigned to a customer"
msgstr "Atsargų elementas buvo priskirtas klientui"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Atsargų elementas šiuo metu gaminamas"
@@ -9234,7 +9254,7 @@ msgstr "Atsargų elementas šiuo metu gaminamas"
msgid "Serialized stock cannot be merged"
msgstr "Su serijos numeriais pažymėtų atsargų sujungti negalima"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Pasikartojantys atsargų elementai"
@@ -9250,71 +9270,71 @@ msgstr "Atsargų elementai turi būti susiję su ta pačia tiekėjo detale"
msgid "Stock status codes must match"
msgstr "Atsargų būsenos kodai turi sutapti"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Atsargų elemento negalima perkelti, nes jo nėra sandėlyje"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "Atsargų elemento sekimas"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Įrašo pastabos"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "Atsargų elemento bandymo rezultatas"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Šiam bandymui turi būti pateikta reikšmė"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Šiam bandymui turi būti įkeltas priedas"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "Netinkama reikšmė šiam bandymui"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Bandymo rezultatas"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Bandymo išvesties reikšmė"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Bandymo rezultato priedas"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Bandymo pastabos"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "Bandymų stotis"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "Bandymų stoties identifikatorius, kurioje atliktas bandymas"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Pradėta"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "Bandymo pradžios laiko žyma"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Pabaigta"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "Bandymo pabaigos laiko žyma"
@@ -9398,7 +9418,7 @@ msgstr "Įveskite serijos numerius naujiems elementams"
msgid "Supplier Part Number"
msgstr "Tiekėjo detalės numeris"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Nebegaliojantis"
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Kiekis negali viršyti galimų atsargų kiekio ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Paskirties atsargų vieta"
@@ -9501,127 +9521,131 @@ msgstr "Pasirinkite atsargų elementus būsenai pakeisti"
msgid "No stock items selected"
msgstr "Nepasirinkti jokie atsargų elementai"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Sub-vietos"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "Pirminė atsargų vieta"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Detalė turi būti parduodama"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "Elementas priskirtas pardavimo užsakymui"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Elementas priskirtas gamybos užsakymui"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Klientas, kuriam priskiriami atsargų elementai"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "Pasirinkta įmonė nėra klientas"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Atsargų priskyrimo pastabos"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Turi būti pateiktas atsargų elementų sąrašas"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Atsargų sujungimo pastabos"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Leisti skirtingus tiekėjus"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Leisti sujungti atsargų elementus su skirtingomis tiekėjų detalėmis"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Leisti skirtingas būsenas"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Leisti sujungti atsargų elementus su skirtingais būsenos kodais"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Turi būti pateikti bent du atsargų elementai"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Be pakeitimų"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Atsargų elemento pirminio rakto reikšmė"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "Atsargų elemento nėra sandėlyje"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Atsargų operacijos pastabos"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Atsargų operacijos pastabos"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "Kitas serijos numeris"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "Ankstesnis serijos numeris"
@@ -9919,7 +9943,7 @@ msgstr "Leidimai"
msgid "Important dates"
msgstr "Svarbios datos"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Raktas buvo atšauktas"
@@ -9927,163 +9951,163 @@ msgstr "Raktas buvo atšauktas"
msgid "Token has expired"
msgstr "Raktas nebegalioja"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API prieigos raktas"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API prieigos raktai"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Rakto pavadinimas"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Pasirinktas rakto pavadinimas"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Rakto galiojimo data"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Paskutinį kartą naudotas"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Paskutinis rakto naudojimo laikas"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Atšauktas"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Leidimų rinkinys"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Peržiūra"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Leidimas peržiūrėti objektus"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Pridėti"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Leidimas pridėti objektus"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Keisti"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Leidimas redaguoti objektus"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Ištrinti"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Leidimas ištrinti objektus"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "Botas"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "Vidinis"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Svečias"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Kalba"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "Pageidaujama vartotojo kalba"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "Tema"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "Žiniatinklio sąsajos nustatymai (JSON formatu) - neredaguoti rankiniu būdu!"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "Valdikliai"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "Prietaisų skydelio valdiklių nustatymai (JSON formatu) - neredaguoti rankiniu būdu!"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Rodomas vardas"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "Pasirinktas vartotojo rodomas vardas"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "Pareigos"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "Pagrindinės pareigos arba darbo pavadinimas"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "Vartotojo būsenos žinutė"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "Vartotojo buvimo vietos informacija"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "Vartotojas aktyviai naudoja sistemą"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "Pageidaujama vartotojo kontaktinė informacija"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "Vartotojo tipas"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "Kokio tipo tai vartotojas?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "Organizacija"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "Pagrindinė vartotojo organizacija / priklausomybė"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "Pagrindinė grupė"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "Pagrindinė vartotojo grupė"
diff --git a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po
index 76cf65ad6a..64fe7515ed 100644
--- a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Latvian\n"
"Language: lv_LV\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API galapunkts nav atrasts"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Lietotājam nav atļaujas, lai apskatītu šo modeli"
@@ -65,11 +65,11 @@ msgstr "E-pasta adreses apstiprinājums"
msgid "You must type the same email each time."
msgstr "Katru reizi jāievada viena un tā pati e-pasta adrese."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Norādītā primārā e-pasta adrese nav derīga."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Norādītais e-pasta domēns nav apstiprināts."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Nevarēja konvertēt {original} par {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Norādītais daudzums nav derīgs"
@@ -105,22 +105,22 @@ msgstr "Ievadiet datumu"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Piezīmes"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Vērtība '{name}' neparādās vajadzīgajā formātā"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Norādītā vērtība neatbilst nepieciešamajam formātam: "
@@ -164,51 +164,51 @@ msgstr "Noņemiet HTML tagus no šīs vērtības"
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Savienojuma kļūda"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Serveris atbildēja ar nederīgu statusa kodu"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Radās izņēmums"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Serveris atbildēja ar nederīgu Content-Length vērtību"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Attēla izmērs ir pārāk liels"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Attēla lejupielāde pārsniedz maksimālo izmēru"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Attālais serveris atgrieza tukšu atbildi"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Norādītajā URL nav derīgs attēla fails"
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr ""
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr ""
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr ""
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr ""
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr ""
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr ""
@@ -521,11 +525,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr ""
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr ""
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr ""
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr ""
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr ""
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -883,8 +887,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr ""
@@ -900,7 +904,7 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr ""
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr ""
@@ -1654,8 +1658,8 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr ""
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1686,7 +1690,7 @@ msgstr ""
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr ""
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr ""
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr ""
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr ""
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po
index 2693c684a4..91fe4c7168 100644
--- a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API eindpunt niet gevonden"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr "Lijst met items of filters moet worden opgegeven voor bulk bewerking"
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Items moeten worden opgegeven als een lijst"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Ongeldige items lijst verstrekt"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Alles filteren alleen gebruiken met True"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Geen items die overeenkomen met de opgegeven criteria"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Geen gegevens verstrekt"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Dit veld moet uniek zijn"
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Gebruiker heeft geen rechten om dit model te bekijken"
@@ -65,11 +65,11 @@ msgstr "E-mailadres bevestiging"
msgid "You must type the same email each time."
msgstr "Er moet hetzelfde e-mailadres ingevoerd worden."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Het opgegeven primaire e-mailadres is ongeldig."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Het ingevoerde e-maildomein is niet goedgekeurd."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "{original} kon niet worden omgezet naar {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Ongeldige hoeveelheid ingevoerd"
@@ -105,22 +105,22 @@ msgstr "Voer datum in"
msgid "Invalid decimal value"
msgstr "Ongeldige decimale waarde"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Opmerkingen"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Waarde '{name}' verschijnt niet in patroonformaat"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Opgegeven waarde komt niet overeen met vereist patroon: "
@@ -164,51 +164,51 @@ msgstr "Verwijder HTML tags van deze waarde"
msgid "Data contains prohibited markdown content"
msgstr "Gegevens bevatten verboden markdown inhoud"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr "Ongeldige URL: geen hostnaam"
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr "Ongeldige URL: hostnaam kon niet worden opgelost"
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr "URL-punten naar een privé of gereserveerd IP-adres"
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr "Te veel doorverwijzingen"
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Verbindingsfout"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Server reageerde met ongeldige statuscode"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Uitzondering opgetreden"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Server reageerde met ongeldige Content-Length waarde"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Afbeeldingsformaat is te groot"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Beelddownload overschrijdt de maximale grootte"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Externe server heeft lege reactie teruggegeven"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Opgegeven URL is geen geldig afbeeldingsbestand"
@@ -220,117 +220,121 @@ msgstr "Log in op de app"
msgid "Email"
msgstr "E-mail"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Schakel tweestapsverificatie in voordat je iets anders kunt doen."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Fout bij uitvoeren plug-in validatie"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadata moeten een python dict object zijn"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Plug-in metadata"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON metadata veld, voor gebruik door externe plugins"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Onjuist opgemaakt patroon"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Onbekende opmaaksleutel gespecificeerd"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Vereiste opmaaksleutel ontbreekt"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Referentieveld mag niet leeg zijn"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Referentie moet overeenkomen met verplicht patroon"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Referentienummer is te groot"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Ongeldige keuze"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Naam"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Omschrijving"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Omschrijving (optioneel)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Pad"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Dubbele namen kunnen niet bestaan onder hetzelfde bovenliggende object"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Markdown notitie (optioneel)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Streepjescode gegevens"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Streepjescode van derden"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Hash van Streepjescode"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Unieke hash van barcode gegevens"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Bestaande barcode gevonden"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Serverfout"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Er is een fout gelogd door de server."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Moet een geldig nummer zijn"
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Selecteer valuta uit beschikbare opties"
@@ -521,11 +525,11 @@ msgstr "Chinees (vereenvoudigd)"
msgid "Chinese (Traditional)"
msgstr "Chinees (traditioneel)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Update beschikbaar"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Een update voor Inventree is beschikbaar"
@@ -537,7 +541,7 @@ msgstr "Ongeldige fysieke eenheid"
msgid "Not a valid currency code"
msgstr "Geen geldige valutacode"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Status van bestelling"
@@ -546,23 +550,23 @@ msgstr "Status van bestelling"
msgid "Parent Build"
msgstr "Bovenliggende Productie"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Inclusief varianten"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Inclusief varianten"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Inclusief varianten"
msgid "Part"
msgstr "Onderdeel"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Categorie"
@@ -593,7 +597,7 @@ msgstr "Categorie"
msgid "Ancestor Build"
msgstr "Voorouderlijke bouw"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Toegewezen aan mij"
@@ -601,11 +605,11 @@ msgstr "Toegewezen aan mij"
msgid "Assigned To"
msgstr "Toegewezen aan"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Gemaakt voor"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Gemaakt na"
@@ -641,99 +645,99 @@ msgstr "Voltooid voor"
msgid "Completed after"
msgstr "Voltooid na"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Min. datum"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Max. datum"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Boomstructuur uitsluiten"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Verbruiksartikelen"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Optioneel"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Samenstelling"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Gevolgd"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Testbaar"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Openstaande order"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Toegewezen"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Verbruikt"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Beschikbaar"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "In bestelling"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr "Build niet gevonden"
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Productieorder"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Locatie"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Uitvoer"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Filter op uitvoer standaard item ID. Gebruik 'null' om niet geïnstalleerde build items te vinden."
@@ -773,9 +777,9 @@ msgstr "Doeldatum moet na startdatum zijn"
msgid "Build Order Reference"
msgstr "Productieorderreferentie"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Verkooporder Referentie"
msgid "Sales Order to which this build is allocated"
msgstr "Productieopdracht waar dit productie aan is toegewezen"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Bronlocatie"
@@ -821,7 +825,7 @@ msgstr "Externe bouw"
msgid "This build order is fulfilled externally"
msgstr "Deze bouw opdracht is extern uitgevoerd"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Bestemmings Locatie"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Productiestatuscode"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Batchcode"
@@ -883,8 +887,8 @@ msgstr "Verwachte opleveringsdatum"
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:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Opleveringsdatum"
@@ -900,7 +904,7 @@ msgstr "Uitgegeven door"
msgid "User who issued this build order"
msgstr "Gebruiker die de productieorder heeft gegeven"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Prioriteit van deze bouwopdracht"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Project code"
@@ -962,9 +966,9 @@ msgstr "Productuitvoer komt niet overeen met de Productieorder"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Hoeveelheid moet groter zijn dan nul"
@@ -999,7 +1003,7 @@ msgstr "Bouw object"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad"
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:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Voorraad item is te veel toegewezen"
@@ -1057,8 +1061,8 @@ msgstr "Voorraad item is te veel toegewezen"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Voorraadartikel"
@@ -1082,7 +1086,7 @@ msgstr "Bestemming voorraadartikel"
msgid "Build Level"
msgstr "Bouw level"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Onderdeel naam"
@@ -1139,7 +1143,7 @@ msgstr "Serienummers automatisch toewijzen"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Vereiste artikelen automatisch toewijzen met overeenkomende serienummers"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "De volgende serienummers bestaan al of zijn ongeldig"
@@ -1272,7 +1276,7 @@ msgstr "Bouw lijn-item"
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:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Artikel moet op voorraad zijn"
@@ -1351,7 +1355,7 @@ msgstr "Selecteer item type om automatisch toe te wijzen"
#: build/serializers.py:1077 order/serializers.py:2096
msgid "Stock Priority"
-msgstr ""
+msgstr "Voorraad prioriteit"
#: build/serializers.py:1078 order/serializers.py:2097
msgid "Preferred order in which matching stock items are consumed"
@@ -1385,8 +1389,8 @@ msgstr "Instaleeren Op"
msgid "Build"
msgstr "Bouwen"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Leveranciersonderdeel"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Varianten toestaan"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Stuklijstartikel"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "In productie"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "Gepland om te bouwen"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Externe voorraad"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Beschikbare Voorraad"
@@ -1527,31 +1531,31 @@ msgstr "Achterstallige Productieorder"
msgid "Build order {bo} is now overdue"
msgstr "Productieorder {bo} is nu achterstallig"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
-msgstr ""
+msgstr "Heeft Miniatuurafbeelding"
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "Is koppeling"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "Is een bestand"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "Gebruiker heeft geen toestemming om deze bijlagen te verwijderen"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
-msgstr ""
+msgstr "Gebruiker heeft geen toestemming om deze bijlage te bewerken."
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "Gebruiker heeft geen toestemming om deze bijlage te verwijderen."
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Lijst met selecties is vergrendeld"
@@ -1571,10 +1575,10 @@ msgstr "Geen geldige valuta codes opgegeven"
msgid "No plugin"
msgstr "Geen plug-in gevonden"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
-msgstr ""
+msgstr "Tags"
#: common/filters.py:390
msgid "Project Code Label"
@@ -1645,8 +1649,8 @@ msgstr "Sleutelreeks moet uniek zijn"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Gebruiker"
@@ -1654,8 +1658,8 @@ msgstr "Gebruiker"
msgid "Price break quantity"
msgstr "Prijs pauze hoeveelheid"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Prijs"
@@ -1677,8 +1681,8 @@ msgstr "Naam van deze webhook"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Actief"
@@ -1686,7 +1690,7 @@ msgstr "Actief"
msgid "Is this webhook active"
msgstr "Is deze webhook actief"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Sleutel"
@@ -1756,7 +1760,7 @@ msgstr "Titel"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definitie"
msgid "Unit definition"
msgstr "Definitie van eenheid"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Bijlage"
@@ -1877,7 +1881,7 @@ msgstr "Bestand als bijlage selecteren"
#: common/models.py:2114
msgid "Thumbnail"
-msgstr ""
+msgstr "Miniatuur"
#: common/models.py:2115
msgid "Thumbnail image for this attachment"
@@ -1901,7 +1905,7 @@ msgstr "Datum waarop het bestand is geüpload"
#: common/models.py:2154
msgid "Is image"
-msgstr ""
+msgstr "Is een afbeelding"
#: common/models.py:2155
msgid "True if this attachment is a valid image file"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "Staat logische sleutel die gelijk is aan deze staat in zakelijke logica"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Waarde"
@@ -2172,7 +2176,7 @@ msgstr "Geldige keuzes voor deze parameter (komma gescheiden)"
msgid "Selection list for this parameter"
msgstr "Lijst met selecties voor deze parameter"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Ingeschakeld"
@@ -2204,8 +2208,8 @@ msgstr "Model-ID"
msgid "ID of the target model for this parameter"
msgstr "ID van het doelmodel voor deze parameter"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Sjabloon"
@@ -2262,7 +2266,7 @@ msgstr "Datum en tijd van de streepjescode scan"
msgid "URL endpoint which processed the barcode"
msgstr "Adres eindpunt dat de streepjescode verwerkt"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Inhoud"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Reactiegegevens van de barcode scan"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Resultaat"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "E-mail gesprekken"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Sleutel"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} is geannuleerd"
msgid "A order that is assigned to you was canceled"
msgstr "Een bestelling die aan u is toegewezen is geannuleerd"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Ontvangen items"
@@ -2524,7 +2528,7 @@ msgstr "Bestandsnaam"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Model type"
@@ -2669,8 +2673,8 @@ msgstr "Hoe vaak te controleren op updates (nul om uit te schakelen)"
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "dagen"
@@ -2684,7 +2688,7 @@ msgstr "Munteenheid update plug-in om te gebruiken"
#: common/setting/system.py:290
msgid "Upload Size Limit"
-msgstr ""
+msgstr "Maximale upload grote"
#: common/setting/system.py:291
msgid "Maximum allowable upload size for images and files"
@@ -2914,8 +2918,8 @@ msgstr "Onderdelen zijn standaard sjablonen"
msgid "Parts can be assembled from other components by default"
msgstr "Onderdelen kunnen standaard vanuit andere componenten worden samengesteld"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Onderdeel"
@@ -2931,7 +2935,7 @@ msgstr "Koopbaar"
msgid "Parts are purchaseable by default"
msgstr "Onderdelen kunnen standaard gekocht worden"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Verkoopbaar"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Registreer fouten die optreden bij het genereren van rapporten"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Paginagrootte"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Toestaan dat voorraadartikelen die niet op voorraad zijn worden overgebracht tussen voorraadlocaties"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Productieorderreferentiepatroon"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Vereist patroon voor het genereren van het Bouworderreferentieveld"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Vereis verantwoordelijke eigenaar"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Een verantwoordelijke eigenaar moet worden toegewezen aan elke bestelling"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Vereist een actief onderdeel"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Voorkom het maken van orders voor inactieve onderdelen"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Vergrendeld onderdeel vereisen"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Voorkom het maken van orders voor ontgrendelde onderdelen"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "Vereist een geldige BOM"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Voorkom het creëren van bouworders tenzij BOM is gevalideerd"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "Onderliggende bestellingen vereist"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Voorkom voltooiing van de bouw tot alle sub orders gesloten zijn"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "Externe Bouw Orders"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "Inschakelen externe build order functionaliteit"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Blokkeren tot test geslaagd"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Voorkom dat de bouw van de uitvoer wordt voltooid totdat alle vereiste testen zijn geslaagd"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Retourorders inschakelen"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Retourorder functionaliteit inschakelen in de gebruikersinterface"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Retourorder referentie patroon"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Verplicht patroon voor het genereren van Retourorder referentie veld"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Bewerk voltooide retourorders"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Bewerken van retourorders toestaan nadat deze zijn voltooid"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Verkooporderreferentiepatroon"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Vereist patroon voor het genereren van het Verkooporderreferentieveld"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Standaard Verzending Verkooporder"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Aanmaken standaard verzending bij verkooporders inschakelen"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Bewerk voltooide verkooporders"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Bewerken van verkooporders toestaan nadat deze zijn verzonden of voltooid"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "Zending moet gecontroleerd worden"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "Voorkom voltooiing van verzendingen totdat items zijn gecontroleerd"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Verstuurde bestellingen markeren als voltooid"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Verkooporders gemarkeerd als verzonden zullen automatisch worden voltooid, zonder de status \"verzonden\""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Inkooporderreferentiepatroon"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Vereist patroon voor het genereren van het Inkooporderreferentieveld"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Bewerk voltooide verkooporders"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Bewerken van inkooporders toestaan nadat deze zijn verzonden of voltooid"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Valuta converteren"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "Verander artikelwaarde naar basisvaluta bij het ontvangen van voorraad"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Inkooporders automatisch voltooien"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Markeer orders automatisch als voltooid wanneer alle regelitems worden ontvangen"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Wachtwoord vergeten functie inschakelen"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Wachtwoord vergeten functie inschakelen op de inlogpagina's"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Registratie inschakelen"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Zelfregistratie voor gebruikers op de inlogpagina's inschakelen"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "SSO inschakelen"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "SSO inschakelen op de inlogpagina's"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Schakel gebruikersregistratie met SSO in"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Zelfregistratie voor gebruikers middels SSO op de inlogpagina's inschakelen"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "SSO-groep synchroniseren inschakelen"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Inschakelen van het synchroniseren van InvenTree groepen met groepen geboden door de IdP"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "SSO groep sleutel"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "De naam van de groepen claim attribuut van de IdP"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "SSO groep kaart"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "Een mapping van SSO-groepen naar lokale InvenTree groepen. Als de lokale groep niet bestaat, zal deze worden aangemaakt."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Verwijder groepen buiten SSO"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "Of groepen die zijn toegewezen aan de gebruiker moeten worden verwijderd als ze geen backend zijn door de IdP. Het uitschakelen van deze instelling kan beveiligingsproblemen veroorzaken"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "E-mailadres verplicht"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Vereis gebruiker om e-mailadres te registreren bij aanmelding"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "SSO-gebruikers automatisch invullen"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Gebruikersdetails van SSO-accountgegevens automatisch invullen"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "E-mail twee keer"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Bij inschrijving gebruikers twee keer om hun e-mail vragen"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Wachtwoord tweemaal"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Laat gebruikers twee keer om hun wachtwoord vragen tijdens het aanmelden"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Toegestane domeinen"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Inschrijven beperken tot bepaalde domeinen (komma-gescheiden, beginnend met @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Groep bij aanmelding"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Groep waaraan nieuwe gebruikers zijn toegewezen op registratie. Als SSO-groepssynchronisatie is ingeschakeld, is deze groep alleen ingesteld als er geen groep vanuit de IdP kan worden toegewezen."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "MFA afdwingen"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Gebruikers moeten multifactor-beveiliging gebruiken."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr "Het inschakelen van deze instelling zal ervoor zorgen dat alle gebruikers multifactor authenticatie instellen. Alle sessies worden onmiddellijk verbroken."
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Controleer plugins bij het opstarten"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Controleer of alle plug-ins zijn geïnstalleerd bij het opstarten - inschakelen in container-omgevingen"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Controleren op plug-in updates"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Schakel periodieke controles voor updates voor geïnstalleerde plug-ins in"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Activeer URL-integratie"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Plugins toestaan om URL-routes toe te voegen"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Activeer navigatie integratie"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Plugins toestaan om te integreren in navigatie"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Activeer app integratie"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Activeer plug-ins om apps toe te voegen"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Activeer planning integratie"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Activeer plugin om periodiek taken uit te voeren"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Activeer evenement integratie"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Activeer plugin om op interne evenementen te reageren"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Interface integratie activeren"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Plug-ins inschakelen om te integreren in de gebruikersinterface"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "E-mail integratie inschakelen"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "Schakel plug-ins in om uitgaande / inkomende mails te verwerken"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "Activeer project codes"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Schakel projectcodes in voor het bijhouden van projecten"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr "Voorraadcontrole inschakelen"
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "Functionaliteit voor het opnemen van historische voorraadniveaus en -waarde inschakelen"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Externe locaties uitsluiten"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Voorraadartikelen op externe locaties uitsluiten van voorraadberekeningen"
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Automatische Voorraadcontrole Periode"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr "Aantal dagen tussen automatische voorraadgegevens opnemen"
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr "Oude voorraadgegevens verwijderen"
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr "Voorraadgegevens verwijderen die ouder zijn dan het opgegeven aantal dagen"
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr "Interval Voorraadgegevens verwijderen"
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr "Voorraadgegevens zal worden verwijderd na het opgegeven aantal dagen"
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr "Oude voorraadgegevens verwijderen"
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr "Inverval voor verwijderen van voorraadtracking"
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Gebruikers volledige namen weergeven"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Laat gebruikers volledige namen zien in plaats van gebruikersnamen"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "Gebruikersprofielen tonen"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "Toon gebruikersprofielen op hun profielpagina"
-#: common/setting/system.py:1239
-msgid "Week Starts On"
-msgstr ""
-
-#: common/setting/system.py:1240
-msgid "Starting day of the week, for display in calendar views"
-msgstr ""
-
-#: common/setting/system.py:1243
-msgid "Sunday"
-msgstr ""
-
-#: common/setting/system.py:1244
-msgid "Monday"
-msgstr ""
-
-#: common/setting/system.py:1245
-msgid "Tuesday"
-msgstr ""
-
-#: common/setting/system.py:1246
-msgid "Wednesday"
-msgstr ""
-
#: common/setting/system.py:1247
-msgid "Thursday"
-msgstr ""
+msgid "Week Starts On"
+msgstr "De week begint op"
#: common/setting/system.py:1248
-msgid "Friday"
-msgstr ""
+msgid "Starting day of the week, for display in calendar views"
+msgstr "Eerste dat van de week, voor in de kalenderweergaven"
-#: common/setting/system.py:1249
-msgid "Saturday"
-msgstr ""
+#: common/setting/system.py:1251
+msgid "Sunday"
+msgstr "Zondag"
+
+#: common/setting/system.py:1252
+msgid "Monday"
+msgstr "Maandag"
#: common/setting/system.py:1253
+msgid "Tuesday"
+msgstr "Dinsdag"
+
+#: common/setting/system.py:1254
+msgid "Wednesday"
+msgstr "woensdag"
+
+#: common/setting/system.py:1255
+msgid "Thursday"
+msgstr "Donderdag"
+
+#: common/setting/system.py:1256
+msgid "Friday"
+msgstr "Vrijdag"
+
+#: common/setting/system.py:1257
+msgid "Saturday"
+msgstr "Zaterdag"
+
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
-msgstr ""
+msgstr "maanden"
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Inschakelen van teststation data"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Schakel teststation gegevensverzameling in voor testresultaten"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "Machine Ping inschakelen"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "Schakel periodieke ping taak van geregistreerde machines in om hun status te controleren"
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "Alle modellen"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "Geen bijlage model type opgegeven"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Ongeldig bijlage type"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
-msgstr ""
+msgstr "Ongeldige bestandsnaam"
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "Minimale plaatsen mogen niet groter zijn dan het maximum"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "Maximum aantal plaatsen kan niet minder zijn dan minimaal"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Een leeg domein is niet toegestaan."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Ongeldige domeinnaam: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "De waarde moet hoofdletters zijn"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "Waarde moet een geldige variabele id zijn"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "Leverancier is actief"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Fabrikant"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Bedrijf"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Contact e-mailadres"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Contact"
@@ -4297,7 +4309,7 @@ msgstr "Btw-nr"
msgid "Company Tax ID"
msgstr "BTW-nummer van bedrijf"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Adres"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Link naar adres gegevens (extern)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Fabrikant onderdeel"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Fabrikant selecteren"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "Fabrikant artikel nummer"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Gekoppeld fabrikant onderdeel moet verwijzen naar hetzelfde basis onderdeel"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Leverancier"
@@ -4448,7 +4460,7 @@ msgstr "Leverancier"
msgid "Select supplier"
msgstr "Leverancier selecteren"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Voorraad beheers eenheid voor leveranciers"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimale kosten (bijv. voorraadkosten)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Verpakking"
@@ -4533,7 +4545,7 @@ msgstr "Standaardvaluta die gebruikt wordt voor deze leverancier"
msgid "Company Name"
msgstr "Bedrijfsnaam"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Op voorraad"
@@ -4543,7 +4555,7 @@ msgstr "Prijsverschillen"
#: company/serializers.py:467
msgid "Pretty Name"
-msgstr ""
+msgstr "Weergavenaam"
#: data_exporter/mixins.py:328 data_exporter/mixins.py:417
msgid "Error occurred during data export"
@@ -4722,7 +4734,7 @@ msgstr "Oorspronkelijke rij gegevens"
msgid "Errors"
msgstr "Fouten"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Geldig"
@@ -4838,7 +4850,7 @@ msgstr "Aantal afdrukken voor elk label"
msgid "Connected"
msgstr "Verbonden"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Onbekend"
@@ -4942,7 +4954,7 @@ msgstr "Sleutel van de eigenschap"
msgid "Value of the property"
msgstr "Waarde van de eigenschap"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Groep"
@@ -4966,118 +4978,118 @@ msgstr "Maximale voortgang"
msgid "Maximum value for progress type, required if type=progress"
msgstr "Maximale waarde voor voortgangsttype, vereist als type=progress"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Order Referentie"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Uitmuntend"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Heeft een projectcode"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Aangemaakt Door"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Gemaakt vóór"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Gemaakt na"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "Heeft vervaldatum"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "Vervaldatum voor"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "Vervaldatum na"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "Heeft doel datum"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Doel datum voor"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Doel datum na"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr "Bijgewerkt voor"
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr "Bijgewerkt na"
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Heeft prijsstelling"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Voltooid voor"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Voltooid na"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "Externe Bouw Opdracht"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Bestellen"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Bestelling voltooid"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Intern onderdeel"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Bestelling in behandeling"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Voltooid"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Heeft verzending"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Inkooporder"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Inkooporder"
msgid "Sales Order"
msgstr "Verkooporder"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Retour bestelling"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr "Adres komt niet overeen met het geselecteerde bedrijf"
msgid "Order description (optional)"
msgstr "Bestelling beschrijving (optioneel)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Selecteer projectcode voor deze bestelling"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Link naar externe pagina"
@@ -5151,7 +5163,7 @@ msgstr "Start datum"
msgid "Scheduled start date for this order"
msgstr "Geplande startdatum voor deze bestelling"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Streefdatum"
@@ -5184,487 +5196,487 @@ msgstr "Contactpunt voor deze volgorde"
msgid "Company address for this order"
msgstr "Bedrijf adres voor deze bestelling"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Orderreferentie"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Status"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Inkooporder status"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Bedrijf waar de artikelen van worden besteld"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Leveranciersreferentie"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Order referentiecode van leverancier"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "ontvangen door"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Order voltooid op datum"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Bestemming"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Bestemming voor ontvangen items"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Onderdeelleverancier moet overeenkomen met de Inkooporderleverancier"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Artikelregel komt niet overeen met inkooporder"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "Regelitem mist een gekoppeld deel"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Hoeveelheid moet een positief getal zijn"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Klant"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Bedrijf waaraan de artikelen worden verkocht"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Verkooporder status"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Klantreferentie "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Klant order referentiecode"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Verzenddatum"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "verzonden door"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "Bestelling is al afgerond"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "Order is al geannuleerd"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Alleen een open bestelling kan als voltooid worden gemarkeerd"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Bestelling kan niet worden voltooid omdat er onvolledige verzendingen aanwezig zijn"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "Order kan niet worden voltooid omdat er onvolledige artikelen aanwezig zijn"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Order kan niet worden voltooid omdat er onvolledige artikelen aanwezig zijn"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "De bestelling is vergrendeld en kan niet worden gewijzigd"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Hoeveelheid artikelen"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Artikelregel referentie"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Artikel notities"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Doeldatum voor dit regelitem (laat leeg om de doeldatum van de bestelling te gebruiken)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Regelomschrijving (optioneel)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Additionele context voor deze regel"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Stukprijs"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "Inkooporder regel item"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "Leveranciersonderdeel moet overeenkomen met leverancier"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "Bouw bestelling moet worden gemarkeerd als extern"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "Bestellingen kunnen alleen aan assemblageonderdelen worden gekoppeld"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "De bouw van het order deel moet overeenkomen met regel onderdeel"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Leveranciersonderdeel"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Ontvangen"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Aantal ontvangen artikelen"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Inkoopprijs"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Aankoopprijs per stuk"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "Externe Build Order moet aan deze regel voldoen"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "Extra regel inkooporder"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "Verkooporder regel item"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Alleen verkoopbare onderdelen kunnen aan een verkooporder worden toegewezen"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Verkoopprijs"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Prijs per stuk"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Verzonden"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Verzonden hoeveelheid"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "Verzending van verkooporder"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "Verzendadres moet overeenkomen met de klant"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "Verzendadres voor deze zending"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Datum van verzending"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Leveringsdatum"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Datum van levering van zending"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Gecontroleerd door"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Gebruiker die deze zending gecontroleerd heeft"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Zending"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Zendingsnummer"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Volgnummer"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Zending volginformatie"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Factuurnummer"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Referentienummer voor bijbehorende factuur"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Verzending is al verzonden"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Zending heeft geen toegewezen voorraadartikelen"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "Verzending moet worden gecontroleerd voordat deze kan worden voltooid"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "Verkooporder extra regel"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "Toewijzing verkooporder"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "Voorraadartikel is niet toegewezen"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kan het voorraadartikel niet toewijzen aan een regel met een ander onderdeel"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Kan voorraad niet toewijzen aan een regel zonder onderdeel"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Toewijzingshoeveelheid kan niet hoger zijn dan de voorraadhoeveelheid"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Toewijzing hoeveelheid moet groter zijn dan nul"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Hoeveelheid moet 1 zijn voor geserialiseerd voorraadartikel"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Verkooporder komt niet overeen met zending"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Verzending komt niet overeen met verkooporder"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Regel"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Verzendreferentie verkooporder"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Artikel"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Selecteer voorraadartikel om toe te wijzen"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Voer voorraadtoewijzingshoeveelheid in"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Retour order referentie"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Bedrijf van waaruit items worden teruggestuurd"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Retour bestelling status"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "Retourneer bestelregel item"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "Voorraad item moet worden opgegeven"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "Retour hoeveelheid overschrijdt voorraad hoeveelheid"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "Het retour aantal moet groter zijn dan nul"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Ongeldige hoeveelheid voor geserialiseerde voorraad"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Selecteer te retourneren product van de klant"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Ontvangst datum"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr "De datum waarop dit retour item is ontvangen"
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Resultaat"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Resultaat van deze regel item"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Kosten geassocieerd met teruggave of reparatie voor deze regel item"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "Retourneren extra regel"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr "Extra regels kopiëren"
msgid "Copy extra line items from the original order"
msgstr "Extra regelitems van de oorspronkelijke bestelling kopiëren"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Parameters kopiëren"
@@ -5785,11 +5797,11 @@ msgstr "Items samenvoegen"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Items met hetzelfde onderdeel, bestemming en doeldatum samenvoegen in één regelitem"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Intern Onderdeelnummer"
@@ -5826,7 +5838,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Voer batch code in voor inkomende voorraad items"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Vervaldatum"
@@ -6057,123 +6069,131 @@ msgstr "Achterstallige retour orders"
msgid "Return order {ro} is now overdue"
msgstr "Productieorder {ro} is nu achterstallig"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Favoriet"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Filter op categorieën met ster"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Diepte"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Filteren op categorie diepte"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Hoogste niveau"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Filteren op topniveau categorieën"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Stapelen"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Inclusief subcategorieën in gefilterde resultaten"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Bovenliggend"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Filter op bovenliggende categorie"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Subcategorieën uitsluiten in de opgegeven categorie"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Heeft resultaten"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "Is een variant"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "Is revisie"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "Heeft revisies"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "BOM Valid"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "Cascade Categorieën"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "Indien waar, inclusief items op de onderliggende categorieën van de opgegeven categorie"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Filter op numerieke categorie-ID of de letterlijke 'null'"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr "Bouw onderdeel is actief"
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr "Bouw onderdeel is te volgen"
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "Assemblage deel is testbaar"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr "Onderdeel is actief"
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr "Onderdeel is trackable"
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "Component onderdeel is testbaar"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr "Onderdeel is nog te bouwen"
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr "Onderdeel is virtueel"
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr "Heeft beschikbare voorraad"
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Gebruik"
@@ -6214,7 +6234,7 @@ msgstr "Standaard trefwoorden voor delen in deze categorie"
msgid "Icon"
msgstr "Pictogram"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Pictogram (optioneel)"
@@ -6350,7 +6370,7 @@ msgstr "Deel sleutelwoorden om de zichtbaarheid van de zoekresultaten te verbete
msgid "Part category"
msgstr "Onderdeel Categorie"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6359,7 +6379,7 @@ msgstr "IPN"
msgid "Part revision or version number"
msgstr "Onderdeel revisie of versienummer"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Revisie"
@@ -6383,7 +6403,7 @@ msgstr "Standaard verval datum"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Verlooptijd (in dagen) voor voorraadartikelen van dit deel"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Minimum voorraad"
@@ -6391,7 +6411,7 @@ msgstr "Minimum voorraad"
msgid "Minimum allowed stock level"
msgstr "Minimaal toegelaten stock niveau"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6632,7 +6652,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Totale voorraad op het moment van voorraadcontrole"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Datum"
@@ -6760,7 +6780,7 @@ msgstr "Sub onderdeel"
msgid "Select part to be used in BOM"
msgstr "Selecteer onderdeel dat moet worden gebruikt in BOM"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6912,351 +6932,351 @@ msgstr "Bovenliggende categorie"
msgid "Parent part category"
msgstr "Bovenliggende onderdeel categorie"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Subcategorieën"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Resultaten"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Aantal resultaten opgenomen ten opzichte van deze template"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Inkooporder voor dit voorraadartikel"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "Bestand is geen afbeelding"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Oorspronkelijk onderdeel"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Selecteer origineel onderdeel om te dupliceren"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Afbeelding kopiëren"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Afbeelding kopiëren van het oorspronkelijke onderdeel"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Copy BOM"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Kopieer materiaal van het oorspronkelijke deel"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Parameter data kopiëren van het originele onderdeel"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Notities kopiëren"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Kopieer notities van het originele deel"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "Tests kopiëren"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "Test sjablonen kopiëren van het originele deel"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Eerste voorraad hoeveelheid"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Specificeer de initiële voorraad hoeveelheid voor dit onderdeel. Als het aantal nul is, wordt er geen voorraad toegevoegd."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Eerste voorraad locatie"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Specificeer locatie van de eerste voorraad voor dit onderdeel"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Selecteer leverancier (of laat leeg om niets in te vullen)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Selecteer fabrikant (of laat leeg om niets in te vullen)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Fabrikant artikel nummer"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "Geselecteerde onderneming is geen geldige leverancier"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "Geselecteerde bedrijf is geen geldige fabrikant"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Fabrikant deel dat overeenkomt met deze MPN bestaat al"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Leveranciersdeel dat overeenkomt met deze SKU bestaat al"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Categorie naam"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Bouwen"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "Hoeveelheid van dit deel dat momenteel in productie is"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Er zal een onuitputtelijke hoeveelheid van dit deel worden gebouwd"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Voorraadartikelen"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Revisies"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Totale Voorraad"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Niet toegewezen voorraad"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Variant voorraad"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Dupliceer onderdeel"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Kopieer eerste gegevens uit een ander onderdeel"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Eerste voorraad"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Maak onderdeel met eerste voorraad"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Leveranciersgegevens"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Aanvankelijke leveranciersinformatie voor dit deel toevoegen"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Categorie parameters kopiëren"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Parameter sjablonen kopiëren uit geselecteerde onderdeel categorie"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Bestaande afbeelding"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Bestandsnaam van een bestaande onderdeel afbeelding"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Afbeeldingsbestand bestaat niet"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Valideer de gehele materiaalbon"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Kan bouwen"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "Vereist voor bouworders"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "Toegewezen aan bouwen van orders"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "Vereist voor verkooporders"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "Toegewezen aan verkooporders"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr "IPN onderdeel"
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr "Onderdeel omschrijving"
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr "Rapport Maken"
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Minimale prijs"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Overschrijf berekende waarde voor minimale prijs"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Minimale prijs valuta"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Maximale prijs"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Overschrijf de berekende waarde voor de maximale prijs"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Maximale prijs valuta"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Bijwerken"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Prijzen voor dit onderdeel bijwerken"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Kan niet converteren van de verstrekte valuta naar {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Minimumprijs mag niet hoger zijn dan de maximale prijs"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Maximale prijs mag niet lager zijn dan de minimale prijs"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "Selecteer de bovenliggende assemblage"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "Selecteer het onderdeel"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Selecteer onderdeel om BOM van te kopiëren"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Bestaande gegevens verwijderen"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Verwijder bestaande BOM items voor het kopiëren"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Inclusief overgenomen"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Inclusief stuklijst BOM items die worden overgenomen van getemplated onderdelen"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Ongeldige regels overslaan"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Schakel deze optie in om ongeldige rijen over te slaan"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Verwijder vervangend deel"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopieer vervangende onderdelen bij dubbele stuklijst BOM items"
@@ -7327,91 +7347,91 @@ msgstr "Geen actie gespecificeerd"
msgid "No matching action found"
msgstr "Geen overeenkomende actie gevonden"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Geen overeenkomst gevonden voor streepjescodegegevens"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Overeenkomst gevonden voor streepjescodegegevens"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "Model wordt niet ondersteund"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "Model instantie niet gevonden"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Barcode komt overeen met bestaand item"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Geen overeenkomende actie gevonden"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Geen overeenkomende leveranciers onderdelen gevonden"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Meerdere overeenkomende leveranciers onderdelen gevonden"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "Geen overeenkomende plug-in gevonden voor barcode gegevens"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Overeenkomende leverancier onderdeel"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Regel item is al ontvangen"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "Er komt geen plug-in overeen met de barcode van de leverancier"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Meerdere overeenkomende regelitems gevonden"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Geen overeenkomend voorraaditem gevonden"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Geen verkooporder opgegeven"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Streepjescode komt niet overeen met een bestaand voorraadartikel"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Voorraad item komt niet overeen met regelitem"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Onvoldoende voorraad beschikbaar"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Voorraad item toegewezen aan verkooporder"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Te weinig informatie"
@@ -7993,7 +8013,7 @@ msgstr "Rand"
msgid "Print a border around each label"
msgstr "Print een rand rond elk label"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Liggend"
@@ -8073,77 +8093,77 @@ msgstr "Biedt ondersteuning voor het scannen van TME barcodes "
msgid "The Supplier which acts as 'TME'"
msgstr "De leverancier die als \"TME” optreedt "
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "Plug-in installatie is uitgeschakeld"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Plug-in succesvol geïnstalleerd"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plug-in geïnstalleerd in {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "De plug-in is niet gevonden in het register"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "De plug-in is geen verpakte plug-in"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "Naam van plug-in pakket niet gevonden"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "Alleen medewerker gebruikers kunnen plug-ins beheren"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "Verwijderen van plug-in is uitgeschakeld"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "De plug-in kan niet worden verwijderd omdat deze momenteel actief is"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr "De plug-in kan niet gedeïnstalleerd worden omdat deze verplicht is"
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr "De plug-in kan niet worden gedeïnstalleerd omdat het een voorbeeld plug-in is"
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr "De plug-in kan niet worden gedeïnstalleerd omdat het een ingebouwde plug-in is"
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "De plug-in is niet geïnstalleerd"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "Plug-in installatie niet gevonden"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "Deïnstalleerde plug-in succesvol"
@@ -8195,21 +8215,21 @@ msgstr "Pakket plug-in"
msgid "Plugin"
msgstr "Plug-in"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Geen auteur gevonden"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "De plug-in '{p}' is niet compatibel met de huidige InvenTree versie {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "De plug-in vereist minimaal versie {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Plug-in vereist op de hoogste versie {v}"
@@ -8482,136 +8502,136 @@ msgstr "Juridisch"
msgid "Letter"
msgstr "Brief"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "Sjabloonbestand met deze naam bestaat al"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Template naam"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Template beschrijving"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "Revisie nummer (auto verhogen)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Bevestig aan het model bij afdrukken"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Sla rapport output op als bijlage ten opzichte van gekoppelde model instantie bij afdrukken"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Bestandsnaam Patroon"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "Patroon voor het genereren van bestandsnamen"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "Template is ingeschakeld"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "Doel type model voor sjabloon"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filters"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "Sjabloon zoekfilters (door komma's gescheiden lijst van sleutel=waarde paren)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Sjabloon bestand"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Standaard paginagrootte voor PDF rapport"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Rapportage weergeven in liggende stand"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "Samenvoegen"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr "Geef een enkel rapport tegen geselecteerde items"
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "Rapport gegenereerd door template {self.name}"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr "Sjabloon syntaxis fout"
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr "Fout bij het renderen rapport"
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "Fout bij genereren rapport"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr "Fout bij samenvoegen rapport uitvoer"
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Breedte [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Label breedte, gespecificeerd in mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Hoogte [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Label hoogte, gespecificeerd in mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "Fout afdrukken van labels"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Tekstfragment"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Rapporteer snippet bestand"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Snippet bestandsbeschrijving"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Asset"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Rapporteer asset bestand"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Beschrijving asset bestand"
@@ -8767,200 +8787,200 @@ msgstr "Geen resultaat"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Afbeelding bestand niet gevonden"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "part_image tag vereist een onderdeel instantie"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "bedrijf_imagetag vereist een bedrijfsinstantie"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "Filter op locatie diepte"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "Filter op topniveau locaties"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "Inclusief sublocaties in gefilterde resultaten"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Bovenliggende locatie"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Filter op bovenliggende locatie"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Naam van onderdeel (hoofdletter ongevoelig)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "Naam van onderdeel bevat (hoofdletter ongevoelig)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Naam onderdeel (regex)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "Deel IPN (hoofdletter ongevoelig)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "Onderdeel IPN bevat (hoofdletter ongevoelig)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "Deel IPN (regex)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Minimale voorraad"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Maximale voorraad"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Status code"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Externe locatie"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "Verbruikt door productieorder"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "Geïnstalleerd in een ander voorraadartikel"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Boomstructuur onderdeel"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Eerder bijgewerkt"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Bijgewerkt na"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Voorraadcontrole voor"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Voorraadcontrole na"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Vervaldatum voor"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Vervaldatum na"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Verouderd"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr "Voorraad PK om dit item en al zijn afstammelingen uit te sluiten"
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr "Cascade locaties"
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr "Indien waar, inclusief items op de onderliggende locaties van de opgegeven locatie"
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr "Filter op numerieke locatie ID of de letterlijke 'null'"
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Hoeveelheid is vereist"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Geldig onderdeel moet worden opgegeven"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "Het opgegeven leveranciers onderdeel bestaat niet"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "Het leveranciersdeel heeft een pakketgrootte gedefinieerd, maar vlag use_pack_size niet ingesteld"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Serienummers kunnen niet worden meegeleverd voor een niet traceerbaar onderdeel"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr "Inclusief geïnstalleerde"
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr "Als correct, geef testresultaten voor items die onder het opgegeven voorraadartikel zijn geïnstalleerd"
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr "Filter op numerieke voorraadartikel ID"
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr "Voorraadartikel met ID {id} bestaat niet"
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr "Inclusief Onderdeel varianten"
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr "Datum na"
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr "Datum voor"
@@ -8996,7 +9016,7 @@ msgstr "Selecteer eigenaar"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Voorraaditems kunnen niet direct worden geplaatst op een structurele voorraadlocatie, maar kunnen zich op onderliggende locaties bevinden."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Extern"
@@ -9102,7 +9122,7 @@ msgstr "Selecteer een leveranciersdeel voor dit voorraadartikel"
msgid "Where is this stock item located?"
msgstr "Waar bevindt zich dit voorraaditem?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Het verpakken van dit voorraaditem is opgeslagen in"
@@ -9118,7 +9138,7 @@ msgstr "Is dit item geïnstalleerd in een ander item?"
msgid "Serial number for this item"
msgstr "Serienummer van dit item"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Batch code voor dit voorraaditem"
@@ -9207,7 +9227,7 @@ msgstr "Hoeveelheid komt niet overeen met serienummers"
msgid "Cannot assign stock to structural location"
msgstr "Kan voorraad niet toewijzen aan structurele locatie"
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "Testsjabloon bestaat niet"
@@ -9227,7 +9247,7 @@ msgstr "Voorraadartikel bevat andere producten"
msgid "Stock item has been assigned to a customer"
msgstr "Voorraadartikel is aan een klant toegewezen"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Voorraad item is momenteel in productie"
@@ -9235,7 +9255,7 @@ msgstr "Voorraad item is momenteel in productie"
msgid "Serialized stock cannot be merged"
msgstr "Geserialiseerde voorraad kan niet worden samengevoegd"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Dupliceer voorraadartikelen"
@@ -9251,71 +9271,71 @@ msgstr "Voorraadartikelen moeten verwijzen naar dezelfde leveranciersdeel"
msgid "Stock status codes must match"
msgstr "De voorraad statuscodes moeten overeenkomen"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Voorraadartikel kan niet worden verplaatst omdat het niet op voorraad is"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "Voorraad item volgen"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Item notities"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "Resultaat voorraad test resultaten"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Waarde moet voor deze test worden opgegeven"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Bijlage moet worden geüpload voor deze test"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "Ongeldige waarde voor deze test"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Test resultaat"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Test uitvoer waarde"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Test resultaat bijlage"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Test notities"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "Test station"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "De identificatie van het teststation waar de test werd uitgevoerd"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Gestart"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "Het tijdstip van de start test"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Afgerond"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "Het tijdstip van de afgeronde test"
@@ -9399,7 +9419,7 @@ msgstr "Voer serienummers voor nieuwe items in"
msgid "Supplier Part Number"
msgstr "Leverancier artikelnummer"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Verlopen"
@@ -9429,8 +9449,8 @@ msgstr "Geen voorraad item opgegeven"
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Hoeveelheid mag niet hoger zijn dan de beschikbare voorraad ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Locatie van bestemming"
@@ -9502,127 +9522,131 @@ msgstr "Selecteer voorraadartikelen om status te wijzigen"
msgid "No stock items selected"
msgstr "Geen voorraaditems geselecteerd"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Sublocaties"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "Bovenliggende voorraad locatie"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Onderdeel moet verkoopbaar zijn"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "Artikel is toegewezen aan een verkooporder"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Artikel is toegewezen aan een productieorder"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Klant om voorraadartikelen toe te wijzen"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "Geselecteerde bedrijf is geen klant"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Voorraad toewijzing notities"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Een lijst met voorraad artikelen moet worden opgegeven"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Voorraad samenvoegen notities"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Niet overeen komende leveranciers toestaan"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Toestaan dat voorraadartikelen met verschillende leveranciers onderdelen worden samengevoegd"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Sta onjuiste status toe"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Toestaan dat voorraadartikelen met verschillende statuscodes worden samengevoegd"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Er moeten ten minste twee voorraadartikelen worden opgegeven"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Geen wijziging"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Voorraaditem primaire sleutel waarde"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "Voorraad artikel is niet op voorraad"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr "Voorraad artikel is al in voorraad"
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr "Hoeveelheid mag niet negatief zijn"
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Voorraad transactie notities"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr "Samenvoegen in bestaande voorraad"
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Voorraad transactie notities"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr "Voeg indien mogelijk geretourneerde items samen in bestaande voorraad"
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "Volgend serienummer"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "Vorig serienummer"
@@ -9920,7 +9944,7 @@ msgstr "Machtigingen"
msgid "Important dates"
msgstr "Belangrijke data"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Token is ingetrokken"
@@ -9928,163 +9952,163 @@ msgstr "Token is ingetrokken"
msgid "Token has expired"
msgstr "Token is verlopen"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API Token"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API tokens"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Token naam"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Aangepaste token naam"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Token vervaldatum"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Laatst gezien"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Laatste keer dat het token werd gebruikt"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Intrekken"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Toestemming set"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Weergeven"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Machtiging om items te bekijken"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Toevoegen"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Machtiging om items toe te voegen"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Wijzigen"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Machtigingen om items te bewerken"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Verwijderen"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Toestemming om items te verwijderen"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "Bot"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "Intern"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Gast"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Taal"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "Voorkeurstaal voor gebruiker"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "Thema"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "Instellingen voor webinterface als JSON - niet handmatig bewerken!"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "Widget"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "Instellingen voor de dashboard widgets als JSON - wijzig niet handmatig!"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Naam weergeven"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "Gekozen weergavenaam voor de gebruiker"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "Functie"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "Titel of positie hoofdtaken"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "Gebruiker status bericht"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "Informatie over locatie gebruiker"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "Gebruiker gebruikt actief het systeem"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "Voorkeursinformatie voor de gebruiker"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "Gebruikers type"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "Welk type gebruiker is dit?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "Organisatie"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "Gebruikers primaire organisatie/affiliatie"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "Primaire groep"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "Primaire groep van de gebruiker"
diff --git a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po
index eabfad5c9c..4d6f3dd788 100644
--- a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API-endepunkt ikke funnet"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Brukeren har ikke rettigheter til å se denne modellen"
@@ -65,11 +65,11 @@ msgstr "Bekreft e-postaddresse"
msgid "You must type the same email each time."
msgstr "Du må angi samme e-post hver gang."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Den oppgitte primære e-postadressen er ikke gyldig."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Det oppgitte e-postdomenet er ikke godkjent."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Kunne ikke konvertere {original} til {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Ugyldig mengde oppgitt"
@@ -105,22 +105,22 @@ msgstr "Oppgi dato"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Notater"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Verdi '{name}' vises ikke i mønsterformat"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Angitt verdi samsvarer ikke med påkrevd mønster: "
@@ -164,51 +164,51 @@ msgstr "Fjern HTML-tagger fra denne verdien"
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Tilkoblingsfeil"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Serveren svarte med ugyldig statuskode"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Det har oppstått et unntak"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Serveren svarte med ugyldig \"Content-Length\"-verdi"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Bildestørrelsen er for stor"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Bildenedlasting overskred maksimal størrelse"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Ekstern server returnerte tomt svar"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Angitt URL er ikke en gyldig bildefil"
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr "E-post"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Feil under validering av utvidelse"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadata må være et python dict-objekt"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Utvidelse-metadata"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON-metadatafelt, for bruk av eksterne utvidelser"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Uriktig formatert mønster"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Ukjent formatnøkkel spesifisert"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Mangler nødvendig formatnøkkel"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Referansefeltet kan ikke være tomt"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Referansen må samsvare påkrevd mønster"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Referansenummeret er for stort"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Ugyldig valg"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Navn"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Beskrivelse"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Beskrivelse (valgfritt)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Sti"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Duplikatnavn kan ikke eksistere under samme overordnede"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Markdown-notater (valgfritt)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Strekkodedata"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Tredjeparts strekkodedata"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Strekkode-hash"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Unik hash av strekkodedata"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Eksisterende strekkode funnet"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Serverfeil"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "En feil har blitt logget av serveren."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Må være et gyldig tall"
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Velg valuta ut fra tilgjengelige alternativer"
@@ -521,11 +525,11 @@ msgstr "Kinesisk (forenklet)"
msgid "Chinese (Traditional)"
msgstr "Kinesisk (tradisjonell)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr "Ugyldig fysisk enhet"
msgid "Not a valid currency code"
msgstr "Ikke en gyldig valutakode"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Ordrestatus"
@@ -546,23 +550,23 @@ msgstr "Ordrestatus"
msgid "Parent Build"
msgstr "Overordnet produksjon"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "Del"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Kategori"
@@ -593,7 +597,7 @@ msgstr "Kategori"
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Produksjonen må avbrytes før den kan slettes"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Forbruksvare"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Valgfritt"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Sammenstilling"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Spores"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Tildelt"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Tilgjengelig"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "I bestilling"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Produksjonsordre"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Plassering"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Produksjonsordre-referanse"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Salgsordrereferanse"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Kildeplassering"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Fullført plassering"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Produksjonsstatuskode"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Batchkode"
@@ -883,8 +887,8 @@ msgstr "Forventet sluttdato"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Måldato for ferdigstillelse. Produksjonen vil være forfalt etter denne datoen."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Fullført dato"
@@ -900,7 +904,7 @@ msgstr "Utstedt av"
msgid "User who issued this build order"
msgstr "Brukeren som utstedte denne produksjonsordren"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Produksjonsordrens prioritet"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Prosjektkode"
@@ -962,9 +966,9 @@ msgstr "Produksjonsartikkelen samsvarer ikke med produksjonsordren"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Mengden må være større enn null"
@@ -999,7 +1003,7 @@ msgstr "Produksjonsobjekt"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Mengden må være 1 for serialisert lagervare"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelig lagerbeholdning ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Lagervaren er overtildelt"
@@ -1057,8 +1061,8 @@ msgstr "Lagervaren er overtildelt"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Lagervare"
@@ -1082,7 +1086,7 @@ msgstr "Lagervare for montering"
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Delnavn"
@@ -1139,7 +1143,7 @@ msgstr "Automatisk tildeling av serienummer"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Automatisk tildeling av nødvendige artikler med tilsvarende serienummer"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Følgende serienummer finnes allerede eller er ugyldige"
@@ -1272,7 +1276,7 @@ msgstr "Produksjonsartikkel"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part må peke på den samme delen som produksjonsordren"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Artikkelen må være på lager"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Leverandørdel"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Tillat Varianter"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "BOM-artikkel"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "I produksjon"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Ekstern lagerbeholdning"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Tilgjengelig lagerbeholdning"
@@ -1527,31 +1531,31 @@ msgstr "Forfalt produksjonsordre"
msgid "Build order {bo} is now overdue"
msgstr "Produksjonsordre {bo} er nå forfalt"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "Er lenke"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "Er fil"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "Brukeren har ikke tillatelse til å slette dette vedlegget"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr "Ingen gyldige valutakoder angitt"
msgid "No plugin"
msgstr "Ingen programtillegg"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "Nøkkelstreng må være unik"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Bruker"
@@ -1654,8 +1658,8 @@ msgstr "Bruker"
msgid "Price break quantity"
msgstr "Antall for prisbrudd"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Pris"
@@ -1677,8 +1681,8 @@ msgstr "Navn for webhooken"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktiv"
@@ -1686,7 +1690,7 @@ msgstr "Aktiv"
msgid "Is this webhook active"
msgstr "Er webhooken aktiv"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Sjetong"
@@ -1756,7 +1760,7 @@ msgstr "Tittel"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definisjon"
msgid "Unit definition"
msgstr "Enhetsdefinisjon"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Vedlegg"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Verdi"
@@ -2172,7 +2176,7 @@ msgstr "Gyldige valg for denne parameteren (kommaseparert)"
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Aktivert"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Mal"
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Kontekst"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Resultat"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Nøkkel"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} kansellert"
msgid "A order that is assigned to you was canceled"
msgstr "En ordre som er tildelt til deg ble kansellert"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Artikler mottatt"
@@ -2524,7 +2528,7 @@ msgstr "Filnavn"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Modelltype"
@@ -2669,8 +2673,8 @@ msgstr "Hvor ofte valutakurser skal oppdateres (sett til null for å deaktiverer
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "dager"
@@ -2914,8 +2918,8 @@ msgstr "Deler er maler som standard"
msgid "Parts can be assembled from other components by default"
msgstr "Deler kan settes sammen fra andre komponenter som standard"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Komponent"
@@ -2931,7 +2935,7 @@ msgstr "Kjøpbar"
msgid "Parts are purchaseable by default"
msgstr "Deler er kjøpbare som standard"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Salgbar"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Sidestørrelse"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Produksjonsordre-referansemønster"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Nødvendig mønster for å generere Produksjonsordre-referansefeltet"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Aktiver returordrer"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Aktiver returordrefunksjonalitet i brukergrensesnittet"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Returordre-referansemønster"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Rediger fullførte returordrer"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Tillat redigering av returordrer etter de er fullført"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Salgsordre-referansemønster"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Påkrevd mønster for å generere salgsordrereferansefelt"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Salgsordre standard fraktmetode"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Aktiver opprettelse av standard forsendelse med salgsordrer"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Rediger fullførte salgsordrer"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Tillat redigering av salgsordrer etter de har blitt sendt eller fullført"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Referansemønster for innkjøpsordre"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Obligatorisk mønster for generering av referansefelt for innkjøpsordre"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Rediger fullførte innkjøpsordre"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Tillat redigering av innkjøpsordre etter at de har blitt sendt eller fullført"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Autofullfør innkjøpsordrer"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Automatisk merk innkjøpsordre som fullført når alle ordrelinjer er mottatt"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Aktiver passord glemt"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Ativer funskjon for glemt passord på innloggingssidene"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Aktiver registrering"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Aktiver egenregistrerting for brukerer på påloggingssidene"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Aktiver SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Aktiver SSO på innloggingssidene"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Aktiver SSO-registrering"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Aktiver selvregistrering via SSO for brukere på innloggingssiden"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "E-postadresse kreves"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Krevt at brukere angir e-post ved registrering"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Auto-utfyll SSO-brukere"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Fyll automatisk ut brukeropplysninger fra SSO-kontodata"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "E-post to ganger"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Spør brukeren om e-post to ganger ved registrering"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Passord to ganger"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Spør brukeren om passord to ganger ved registrering"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Tillatte domener"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Begrens registrering til bestemte domener (kommaseparert, begynner med @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Gruppe ved registrering"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Krev MFA"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Brukere må bruke flerfaktorsikkerhet."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Sjekk utvidelser ved oppstart"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Sjekk at alle utvidelser er installert ved oppstart - aktiver i containermiljøer"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Aktiver URL-integrasjon"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Tillat utvidelser å legge til URL-ruter"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Aktiver navigasjonsintegrasjon"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Tillat utvidelser å integrere mot navigasjon"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Aktiver app-integrasjon"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Tillat utvidelser å legge til apper"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Aktiver tidsplanintegrasjon"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Tillat utvidelser å kjøre planlagte oppgaver"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Aktiver hendelsesintegrasjon"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Tillat utvidelser å reagere på interne hendelser"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Ekskluder eksterne plasseringer"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Automatisk varetellingsperiode"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Vis brukernes fulle navn"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Vis brukernes fulle navn istedet for brukernavn"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "Ingen modelltype angitt for vedlegg"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Ugyldig modelltype for vedlegg"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "Minste antall plasser kan ikke være mer enn største antall plasser"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "Største antall plasser kan ikke være mindre enn minste antall plasser"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Et tomt domene er ikke tillatt."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Ugyldig domenenavn: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "Leverandør er aktiv"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Produsent"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Firma"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Kontakt e-post"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Kontakt"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Adresse"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Lenke til adresseinformasjon (ekstern)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Produsentdeler"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Velg produsent"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "MPN"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Den sammenkoblede produsentdelen må referere til samme basisdel"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Leverandør"
@@ -4448,7 +4460,7 @@ msgstr "Leverandør"
msgid "Select supplier"
msgstr "Velg leverandør"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Leverandørens lagerbeholdningsenhet"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimum betaling (f.eks. lageravgift)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Emballasje"
@@ -4533,7 +4545,7 @@ msgstr "Standardvaluta brukt for denne leverandøren"
msgid "Company Name"
msgstr "Bedriftsnavn"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "På lager"
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Gyldig"
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Ukjent"
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Gruppe"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Ordrereferanse"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Opprettet av"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Ordre"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Intern del"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Fullført"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Innkjøpsordre"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Innkjøpsordre"
msgid "Sales Order"
msgstr "Salgsordre"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Returordre"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr "Ordrebeskrivelse (valgfritt)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Velg prosjektkode for denne ordren"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Lenke til ekstern side"
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Måldato"
@@ -5184,487 +5196,487 @@ msgstr "Kontaktpunkt for denne ordren"
msgid "Company address for this order"
msgstr "Selskapsadresse for denne ordren"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Ordrereferanse"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Status"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Status for innkjøpsordre"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Firma som varene blir bestilt fra"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Leverandørreferanse"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Leverandørens ordrereferanse"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "mottatt av"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Dato ordre ble fullført"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Destinasjon"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Delleverandør må matche PO-leverandør"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Linjeelementet samsvarer ikke med innkjøpsordre"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Mengde må være positiv"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Kunde"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Firma som varene selges til"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Kundereferanse "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Kundens ordrereferanse"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Forsendelsesdato"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "sendt av"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Kun en åpen ordre kan merkes som fullført"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Bestillingen kan ikke fullføres da det finnes ufullstendige forsendelser"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Denne ordren kan ikke fullføres da det fortsatt er ufullstendige artikler"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Antall"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Linjereferanse"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Linjenotater"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Måldato for denne linjen (la stå tomt for å bruke måldatoen fra ordren)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Linjeelementbeskrivelse (valgfritt)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Ytterligere kontekst for denne linjen"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Enhetspris"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "Delens leverandør må samsvare med leverandør"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Leverandørdel"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Mottatt"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Antall enheter mottatt"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Innkjøpspris"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Enhet-innkjøpspris"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Kun salgbare deler kan tildeles en salgsordre"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Salgspris"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Enhets-salgspris"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Sendt"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Sendt antall"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Dato for forsendelse"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Leveringsdato"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Dato for levering av forsendelse"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Sjekket Av"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Brukeren som sjekket forsendelsen"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Forsendelse"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Forsendelsesnummer"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Sporingsnummer"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Sporingsinformasjon for forsendelse"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Fakturanummer"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Referansenummer for tilknyttet faktura"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Forsendelsen er allerede sendt"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Forsendelsen har ingen tildelte lagervarer"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "Lagervarer er ikke blitt tildelt"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kan ikke tildele lagervare til en linje med annen del"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Kan ikke tildele lagerbeholdning til en linje uten en del"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tildelingsantall kan ikke overstige tilgjengelig lagerbeholdning"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Tildelingsantall må være større enn null"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Antall må være 1 for serialisert lagervare"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Salgsordre samsvarer ikke med forsendelse"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Forsendelsen samsvarer ikke med salgsordre"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Linje"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Forsendelsesreferanse for salgsordre"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Artikkel"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Velg lagervare å tildele"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Angi lagertildelingsmengde"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Returordre-referanse"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Firmaet delen skal returneres fra"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Returordrestatus"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Velg artikkel som skal returneres fra kunde"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Mottatt Dato"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Utfall"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Utfall for dette linjeelementet"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Kostnad forbundet med retur eller reparasjon for dette linjeelementet"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Kopier parametere"
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "SKU-kode"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Internt delnummer"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Angi batchkode for innkommende lagervarer"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Utløpsdato"
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr "Standard nøkkelord for deler i denne kategorien"
msgid "Icon"
msgstr "Ikon"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikon (valgfritt)"
@@ -6349,7 +6369,7 @@ msgstr "Del-nøkkelord for å øke synligheten i søkeresultater"
msgid "Part category"
msgstr "Delkategori"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr "Delrevisjon eller versjonsnummer"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Revisjon"
@@ -6382,7 +6402,7 @@ msgstr "Standard utløp"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Utløpstid (i dager) for lagervarer av denne delen"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Minimal lagerbeholdning"
@@ -6390,7 +6410,7 @@ msgstr "Minimal lagerbeholdning"
msgid "Minimum allowed stock level"
msgstr "Minimum tillatt lagernivå"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Dato"
@@ -6759,7 +6779,7 @@ msgstr "Underordnet del"
msgid "Select part to be used in BOM"
msgstr "Velg del som skal brukes i BOM"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Underkategorier"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Innkjøpsvaluta for lagervaren"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Original Del"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Velg original del å duplisere"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Kopier Bilde"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Kopier bilde fra originaldel"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Kopier Stykkliste"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Kopier stykkliste fra original del"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Kopier parameterdata fra originaldel"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Kopier notater"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Kopier notater fra originaldel"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Innledende lagerbeholdning"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Angi initiell lagermengde for denne delen. Hvis antall er null, er ingen lagerbeholdning lagt til."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Innledende lagerplassering"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Angi initiell lagerplasering for denne delen"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Velg leverandør (eller la stå tom for å hoppe over)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Velg produsent (eller la stå tom for å hoppe over)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Produsentens delenummer"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "Valgt firma er ikke en gyldig leverandør"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "Valgt firma er ikke en gyldig produsent"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Produsentdel som matcher dette MPN-et, finnes allerede"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Leverandørdel som matcher denne SKU-en, finnes allerede"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Kategorinavn"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Produseres"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Lagervarer"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Total lagerbeholdning"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Dupliser del"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Kopier innledende data fra en annen del"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Innledende lagerbeholdning"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Lag en del med innledende lagermengde"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Leverandøropplysninger"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Legg til innledende leverandørinformasjon for denne delen"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Kopier kategoriparametre"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Kopier parametermaler fra valgt delkategori"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Eksisterende bilde"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Filnavn for et eksisterende del-bilde"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Bildefilen finnes ikke"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Godkjenn hele Stykklisten"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Kan Produsere"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Minstepris"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Overstyr beregnet verdi for minimumspris"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Valuta for minstepris"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Makspris"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Overstyr beregnet verdi for maksimal pris"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Valuta for maksimal pris"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Oppdater"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Oppdater priser for denne delen"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Kan ikke konvertere fra gitte valutaer til {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Minsteprisen kan ikke være større enn maksimal pris"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Maksimal pris kan ikke være mindre enn minstepris"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Velg del å kopiere BOM fra"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Fjern eksisterende data"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Fjern eksisterende BOM-artikler før kopiering"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Inkluder arvede"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Inkluder BOM-artikler som er arvet fra maldeler"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Hopp over ugyldige rader"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Aktiver dette alternativet for å hoppe over ugyldige rader"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Kopier erstatningsdeler"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopier erstatningsdeler når BOM-elementer dupliseres"
@@ -7326,91 +7346,91 @@ msgstr "Ingen handling spesifisert"
msgid "No matching action found"
msgstr "Ingen samsvarende handling funnet"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Ingen treff funnet for strekkodedata"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Treff funnet for strekkodedata"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Strekkode samsvarer med ekisterende element"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Ingen samsvarende del-data funnet"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Finner ingen matchende leverandørdeler"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Flere samsvarende leverandørdeler funnet"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Fant leverandørdel"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Artikkelen er allerede mottatt"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Flere samsvarende elementer funnet"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Ingen samsvarende element funnet"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Strekkoden samsvarer ikke med eksisterende lagervare"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Lagervare samsvarer ikke med linjeelement"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Utilstrekkelig lagerbeholdning"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Lagervaren er tildelt en salgsordre"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Ikke nok informasjon"
@@ -7992,7 +8012,7 @@ msgstr "Kantlinjer"
msgid "Print a border around each label"
msgstr "Skriv ut en kant rundt hver etikett"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Liggende"
@@ -8072,77 +8092,77 @@ msgstr "Gir støtte for å skanne TME-strekkoder"
msgid "The Supplier which acts as 'TME'"
msgstr "Leverandøren som fungerer som \"TME\""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Installasjon av utvidelse vellykket"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Installerte utvidelsen til {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr "Utvidelse"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Ingen forfatter funnet"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Utvidensen '{p}' er ikke kompatibel med nåværende InvenTree-versjon {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Utvidelsen krever minst versjon {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Utvidelsen krever maks versjon {v}"
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Malnavn"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Filnavnmønster"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtre"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Sidestørrelse for PDF-rapporter"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Generer rapport i landskapsorientering"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Bredde [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Etikettbredde, spesifisert i mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Høyde [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Etiketthøyde, spesifisert i mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Snutt"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Rapportsnuttfil"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Filbeskrivelse for snutt"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Ressurs"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Rapportressursfil"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Ressursfilbeskrivelse"
@@ -8766,200 +8786,200 @@ msgstr "Ingen resultat"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Bildefil ikke funnet"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "part_image-taggen krever en Part-instans"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "company_image-taggen krever en Company-instans"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Statuskode"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Ekstern plassering"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Del-tre"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Utløpsdato før"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Utløpsdato etter"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Foreldet"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Antall kreves"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Gyldig del må oppgis"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "Oppgitt leverandørdel eksisterer ikke"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "Leverandørdelen har en pakkestørrelse definert, men flagget \"use_pack_size\" er ikke satt"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Serienumre kan ikke angis for en ikke-sporbar del"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Velg eier"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Lagervarer kan ikke knyttes direkte mot en strukturell lagerplassering, men kan knyttes mot underplasseringer."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Ekstern"
@@ -9101,7 +9121,7 @@ msgstr "Velg en tilsvarende leverandørdel for denne lagervaren"
msgid "Where is this stock item located?"
msgstr "Hvor er denne lagervaren plassert?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Inpakningen denne lagervaren er lagret i"
@@ -9117,7 +9137,7 @@ msgstr "Er denne artikkelen montert i en annen artikkel?"
msgid "Serial number for this item"
msgstr "Serienummer for denne artikkelen"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Batchkode for denne lagervaren"
@@ -9206,7 +9226,7 @@ msgstr "Antallet stemmer ikke overens med serienumrene"
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr "Lagervare inneholder andre artikler"
msgid "Stock item has been assigned to a customer"
msgstr "Lagervare har blitt tildelt til en kunde"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Lagervare er for tiden i produksjon"
@@ -9234,7 +9254,7 @@ msgstr "Lagervare er for tiden i produksjon"
msgid "Serialized stock cannot be merged"
msgstr "Serialisert lagerbeholdning kan ikke slås sammen"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Duplisert lagervare"
@@ -9250,71 +9270,71 @@ msgstr "Lagervarer må referere til samme leverandørdel"
msgid "Stock status codes must match"
msgstr "Lagerstatuskoder må være like"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Lagervare kan ikke flyttes fordi den ikke er på lager"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Oppføringsnotater"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Verdi må angis for denne testen"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Vedlegg må lastes opp for denne testen"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Testresultat"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Testens verdi"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Vedlegg til testresultat"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Testnotater"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr "Angi serienummer for nye artikler"
msgid "Supplier Part Number"
msgstr "Leverandørens delnummer"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Utløpt"
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Antall kan ikke overstige tilgjengelig lagerbeholdning ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Til Lagerplassering"
@@ -9501,127 +9521,131 @@ msgstr "Velg lagervarer for å endre status"
msgid "No stock items selected"
msgstr "Ingen lagervarer valgt"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Underplasseringer"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Delen må være salgbar"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "Artikkelen er tildelt en salgsordre"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Artikkelen er tildelt en produksjonsordre"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Kunde å tilordne lagervarer"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "Valgt firma er ikke en kunde"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Lagervare-tildelignsnotater"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "En liste av lagervarer må oppgis"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Notater om lagersammenslåing"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Tillat forskjellige leverandører"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Tillat lagervarer med forskjellige leverandørdeler å slås sammen"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Tillat forskjellig status"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Tillat lagervarer med forskjellige statuskoder å slås sammen"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Minst to lagervarer må oppgis"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Lagervare primærnøkkel verdi"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Lager transaksjonsnotater"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Lager transaksjonsnotater"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr "Tillatelser"
msgid "Important dates"
msgstr "Viktige datoer"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Token er tilbakekalt"
@@ -9927,163 +9951,163 @@ msgstr "Token er tilbakekalt"
msgid "Token has expired"
msgstr "Token har utløpt"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API-Token"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API-Tokener"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Tokennavn"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Egendefinert tokennavn"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Token utløpsdato"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Sist sett"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Sist gang tokenet ble brukt"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Tilbakekalt"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Tillatelse satt"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Visning"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Tillatelse til å se elementer"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Legg til"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Tillatelse til å legge til elementer"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Endre"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Tillatelse til å endre elementer"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Slett"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Tillatelse til å slette elementer"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po
index e768feb4ce..30079e5287 100644
--- a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "Nie znaleziono punktu końcowego API"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Elementy muszą być podane jako lista"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Podano nieprawidłową listę artykułów"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Wszystkie filtry muszą być używane tylko z true"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Żaden element nie spełnia podanych kryteriów"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Nie dostarczono danych"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Użytkownik nie ma uprawnień do przeglądania tego modelu"
@@ -65,11 +65,11 @@ msgstr "Potwierdzenie adresu email"
msgid "You must type the same email each time."
msgstr "Należy ponownie wpisać ten sam adres e-mail."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Podany podstawowy adres e-mail jest nieprawidłowy."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Podany e-mail domeny nie został zatwierdzony."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Nie udało się przeliczyć {original} na {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
@@ -105,22 +105,22 @@ msgstr "Wprowadź dane"
msgid "Invalid decimal value"
msgstr "Niepoprawna wartość dziesiętna"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Uwagi"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Wartość '{name}' nie pojawia się w formacie wzoru"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Podana wartość nie pasuje do wymaganego wzoru: "
@@ -164,51 +164,51 @@ msgstr "Usuń znaczniki HTML z tej wartości"
msgid "Data contains prohibited markdown content"
msgstr "Dane zawierają zabronione treści znacznika"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Błąd połączenia"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Serwer odpowiedział z nieprawidłowym kodem statusu"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Wystąpił wyjątek"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Serwer odpowiedział z nieprawidłową wartością Content-Length"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Rozmiar obrazu jest zbyt duży"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Przekroczono maksymalny rozmiar pobieranego obrazu"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Zdalny serwer zwrócił pustą odpowiedź"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Podany adres URL nie jest poprawnym plikiem obrazu"
@@ -220,117 +220,121 @@ msgstr "Logowanie do aplikacji"
msgid "Email"
msgstr "Adres E-Mail"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Musisz włączyć uwierzytelnianie dwuskładnikowe przed wykonaniem czegokolwiek innego."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Błąd podczas walidacji wtyczki"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadane muszą być obiektem typu dict w Python"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Wtyczka Metadane"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Pole metadanych JSON, do użycia przez wtyczki zewnętrzne"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Nieprawidłowo sformatowany wzór"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Określono nieznany format klucza"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Brak wymaganego formatu klucza"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Pole odniesienia nie może być puste"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Odniesienie musi być zgodne z wymaganym wzorem"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Numer odniesienia jest zbyt duży"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Nazwa"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Opis"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Opis (opcjonalny)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Ścieżka"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Duplikaty nazw nie mogą istnieć pod tym samym rodzicem"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Notatki Markdown (opcjonalne)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Dane kodu kreskowego"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Dane kodu kreskowego stron trzecich"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Hasz kodu kreskowego"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Unikalny hasz danych kodu kreskowego"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Znaleziono istniejący kod kreskowy"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Błąd serwera"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Błąd został zapisany w logach serwera."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Numer musi być prawidłowy"
msgid "Currency"
msgstr "Waluta"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Wybierz walutę z dostępnych opcji"
@@ -521,11 +525,11 @@ msgstr "chiński (uproszczony)"
msgid "Chinese (Traditional)"
msgstr "chiński (tradycyjny)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Dostępna aktualizacja"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Dostępna jest aktualizacja dla InvenTree"
@@ -537,7 +541,7 @@ msgstr "Niewłaściwa jednostka fizyczna"
msgid "Not a valid currency code"
msgstr "Nieprawidłowy kod waluty"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Status zamówienia"
@@ -546,23 +550,23 @@ msgstr "Status zamówienia"
msgid "Parent Build"
msgstr "Budowa nadrzędna"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Obejmuje warianty"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Obejmuje warianty"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Obejmuje warianty"
msgid "Part"
msgstr "Komponent"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Kategoria"
@@ -593,7 +597,7 @@ msgstr "Kategoria"
msgid "Ancestor Build"
msgstr "Budowa poprzednika"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Przypisane do mnie"
@@ -601,11 +605,11 @@ msgstr "Przypisane do mnie"
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Stworzony przed"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Stworzony po"
@@ -641,99 +645,99 @@ msgstr "Zakończone przed"
msgid "Completed after"
msgstr "Zakończone po"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Minimalna data"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Maksymalna data"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Wyklucz drzewo"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięta"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Materiał eksploatacyjny"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Opcjonalne"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Złożenie"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Śledzony"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Testowalne"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Zaległe zamówienie"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Przydzielono"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Dostępne"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "W Zamówieniu"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Zlecenie Budowy"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Lokalizacja"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Wyjście"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr "Data docelowa musi być po dacie rozpoczęcia"
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Odwołanie do zamówienia sprzedaży"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Lokalizacja źródła"
@@ -821,7 +825,7 @@ msgstr "Budowa zewnętrzna"
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Lokalizacja docelowa"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Kod statusu budowania"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Kod partii"
@@ -883,8 +887,8 @@ msgstr "Docelowy termin zakończenia"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Docelowa data zakończenia kompilacji. Po tej dacie kompilacja będzie zaległa."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Data zakończenia"
@@ -900,7 +904,7 @@ msgstr "Wydany przez"
msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Priorytet tego zamówienia produkcji"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Kod projektu"
@@ -962,9 +966,9 @@ msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Ilość musi być większa niż zero"
@@ -999,7 +1003,7 @@ msgstr "Zbuduj obiekt"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Ilość musi wynosić 1 dla serializowanych zasobów"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Przydzielona ilość ({q}) nie może przekraczać dostępnej ilości zapasów magazynowych ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Pozycja magazynowa jest nadmiernie przydzielona"
@@ -1057,8 +1061,8 @@ msgstr "Pozycja magazynowa jest nadmiernie przydzielona"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Element magazynowy"
@@ -1082,7 +1086,7 @@ msgstr "Docelowa lokalizacja magazynowa przedmiotu"
msgid "Build Level"
msgstr "Poziom budowania"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Nazwa komponentu"
@@ -1139,7 +1143,7 @@ msgstr "Automatycznie przydzielaj numery seryjne"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Automatycznie przydzielaj wymagane elementy z pasującymi numerami seryjnymi"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Poniższe numery seryjne już istnieją lub są nieprawidłowe"
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Towar musi znajdować się w magazynie"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr "Wersja"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Część dostawcy"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Zezwalaj na warianty"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Element BOM"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "W produkcji"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Zew. zasoby magazynowe"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Dostępna ilość"
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "Jest plikiem"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Lista wyboru jest zablokowana"
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr "Brak wtyczki"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "Ciąg musi być unikatowy"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Użytkownik"
@@ -1654,8 +1658,8 @@ msgstr "Użytkownik"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Cena"
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktywny"
@@ -1686,7 +1690,7 @@ msgstr "Aktywny"
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token"
@@ -1756,7 +1760,7 @@ msgstr "Tytuł"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definicja"
msgid "Unit definition"
msgstr "Definicja jednostki"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Załącznik"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Wartość"
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Aktywne"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Szablon"
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Wynik"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Klucz"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} anulowany"
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr "Nazwa pliku"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Typ modelu"
@@ -2669,8 +2673,8 @@ msgstr "Jak często aktualizować kursy wymiany walut (ustaw zero aby wyłączy
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "dni"
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Komponent"
@@ -2931,7 +2935,7 @@ msgstr "Możliwość zakupu"
msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Możliwość sprzedaży"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Rozmiar strony"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Przekonwertuj walutę"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "Konwertuj wartość przedmiotu na walutę bazową podczas otrzymywania zapasów"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Automatycznie wypełniaj zlecenia zakupu"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Automatycznie oznacz zlecenia jako zakończone po odebraniu wszystkich pozycji"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Włącz opcję zapomnianego hasła"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Włącz funkcję zapomnianego hasła na stronach logowania"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Włącz rejestrację"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Włącz samodzielną rejestrację dla użytkowników na stronach logowania"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Włącz SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Włącz SSO na stronach logowania"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Włącz rejestrację SSO"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Włącz samodzielną rejestrację przez SSO dla użytkowników na stronach logowania"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "Włącz synchronizację grupy SSO"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Włącz synchronizację grup InvenTree z grupami dostarczonymi przez IdP"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Adres e-mail jest wymagany"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Autouzupełnianie użytkowników SSO"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Automatycznie wypełnij dane użytkownika z danych konta SSO"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "E-mail dwa razy"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich adres e-mail"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Hasło dwukrotnie"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Przy rejestracji dwukrotnie zapytaj użytkowników o ich hasło"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Grupuj przy rejestracji"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Wymuś MFA"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Użytkownicy muszą używać zabezpieczeń wieloskładnikowych."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Sprawdź wtyczki przy starcie"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Sprawdź dostępność aktualizacji wtyczek"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Włącz okresowe sprawdzanie aktualizacji zainstalowanych wtyczek"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Włącz integrację URL"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Włącz wtyczki, aby dodać ścieżki URL"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Włącz integrację z aplikacją"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Włącz wtyczki, aby dodać aplikacje"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Włącz wtyczki, aby uruchamiać zaplanowane zadania"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "Włącz kody projektów"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Włącz kody projektów do śledzenia projektów"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "Włącz funkcjonalność dla zapisywania historycznych poziomów zapasów i wartości"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Pusta domena nie jest dozwolona."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Niepoprawna nazwa domeny: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Producent"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Firma"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Kontaktowy adres e-mail"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Kontakt"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Adres"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Komponent producenta"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Wybierz producenta"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Dostawca"
@@ -4448,7 +4460,7 @@ msgstr "Dostawca"
msgid "Select supplier"
msgstr "Wybierz dostawcę"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Opakowanie"
@@ -4533,7 +4545,7 @@ msgstr "Domyślna waluta używana dla tego dostawcy"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Na stanie"
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Ważny"
@@ -4838,7 +4850,7 @@ msgstr "Liczba kopii do wydrukowania dla każdej etykiety"
msgid "Connected"
msgstr "Połączono"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Nieznany"
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Grupa"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Numer zamówienia"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Utworzony przez"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Posiada ceny"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Zamówienie"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Komponent wewnętrzny"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Zamówienie oczekujące"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Zakończone"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Zlecenie zakupu"
msgid "Sales Order"
msgstr "Zamówienie zakupu"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Link do zewnętrznej witryny"
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Data docelowa"
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Odniesienie zamówienia"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Status"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Status zamówienia zakupu"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "odebrane przez"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Przeznaczenie"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Pozycja nie pasuje do zlecenia zakupu"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Wartość musi być liczbą dodatnią"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Klient"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Data wysyłki"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "wysłane przez"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Ilość elementów"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Odebrane"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Cena zakupu"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Cena zakupu jednostkowego"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Cena sprzedaży"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Jednostkowa cena sprzedaży"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Wysłane"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Wysłana ilość"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Data wysyłki"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Sprawdzone przez"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Użytkownik, który sprawdził tę wysyłkę"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Przesyłka"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Numer przesyłki"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Numer śledzenia"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Informacje o śledzeniu przesyłki"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Przesyłka została już wysłana"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Linia"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Komponent"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Kopiuj parametry"
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Data ważności"
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Wersja"
@@ -6382,7 +6402,7 @@ msgstr "Domyślne wygasanie"
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
@@ -6390,7 +6410,7 @@ msgstr "Minimalny stan magazynowy"
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Data"
@@ -6759,7 +6779,7 @@ msgstr "Podczęść"
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Podkategorie"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Waluta zakupu tego towaru"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Kopiuj obraz"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Kopiuj BOM"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Towary"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Duplikuj część"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Usuń istniejące dane"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Pomiń nieprawidłowe wiersze"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Włącz tę opcję, aby pominąć nieprawidłowe wiersze"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr "Nie określono działania"
msgid "No matching action found"
msgstr "Nie znaleziono pasującej akcji"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Nie znaleziono wyników dla danych kodu kreskowego"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Znaleziono wyniki dla danych kodu kreskowego"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Kod kreskowy pasuje do istniejącego elementu"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Kod kreskowy nie pasuje do istniejących pozycji magazynowych"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr "Wtyczka"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Nie znaleziono autora"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Nazwa szablonu"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Wzór nazwy pliku"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtry"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Domyślna wielkość strony dla raportów PDF"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Renderuj raport w orientacji poziomej"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Szerokość [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Wysokość [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Wycinek"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Wybierz właściciela"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr "Wybierz pasującą część dostawcy dla tego towaru"
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Notatki do wpisu"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Należy podać wartość dla tego testu"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Wynik testu"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Termin minął"
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Podlokalizacje"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Część musi być dostępna do sprzedaży"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr "Uprawnienia"
msgid "Important dates"
msgstr "Ważne daty"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Uprawnienia nadane"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Widok"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Uprawnienie do wyświetlania przedmiotów"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Dodaj"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Uprawnienie do dodawania przedmiotów"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Zmień"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Uprawnienie do edycji przedmiotów"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Usuń"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Uprawnienie do usuwania przedmiotów"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po
index b2a0c12242..4fe73003da 100644
--- a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API endpoint não encontrado"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Usuário não tem permissão para ver este modelo"
@@ -65,11 +65,11 @@ msgstr "Confirmação do endereço de email"
msgid "You must type the same email each time."
msgstr "Você deve digitar o mesmo e-mail todas as vezes."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "O endereço primário de e-mail não é válido."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "O domínio de e-mail providenciado não foi aprovado."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Não foi possível converter {original} para {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Quantidade fornecida inválida"
@@ -105,22 +105,22 @@ msgstr "Insira uma Data"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Anotações"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Valor '{name}' não está no formato correto"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "O valor fornecido não corresponde ao padrão exigido: "
@@ -164,51 +164,51 @@ msgstr "Remova as \"tags\" HTML deste valor"
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Erro de conexão"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "O servidor respondeu com código estado inválido"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Ocorreu uma exceção"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "O servidor respondeu com valor inválido do tamanho de conteúdo"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Tamanho da imagem muito grande"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "O download da imagem excedeu o tamanho máximo"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "O servidor remoto retornou resposta vazia"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "A URL fornecida não é um arquivo de imagem válido"
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr "Email"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Erro ao executar validação do plugin"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadados deve ser um objeto dict python"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Metadados da Extensão"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Campo de metadados JSON, para uso por extensões externas"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Padrão formatado incorretamente"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Chave de formato desconhecida especificada"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Chave de formato obrigatória ausente"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "O campo de referência não pode ficar vazio"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "A referência deve corresponder ao padrão exigido"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "O número de referência é muito grande"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Escolha inválida"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Nome"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Descrição"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Descrição (opcional)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Caminho"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Nomes duplicados não podem existir sob o mesmo parental"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Notas Markdown (opcional)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Dados de código de barras"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Dados de código de barras de terceiros"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Hash de código de barras"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Hash exclusivo de dados de código de barras"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Código de barras existente encontrado"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Erro de servidor"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Log de erro salvo pelo servidor."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Preicsa ser um numero valido"
msgid "Currency"
msgstr "Moeda"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Selecione a Moeda nas opções disponíveis"
@@ -521,11 +525,11 @@ msgstr "Chinês (Simplificado)"
msgid "Chinese (Traditional)"
msgstr "Chinês (Tradicional)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr "Unidade física inválida"
msgid "Not a valid currency code"
msgstr "Não é um código de moeda válido"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Situação do pedido"
@@ -546,23 +550,23 @@ msgstr "Situação do pedido"
msgid "Parent Build"
msgstr "Produção Progenitor"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "Peça"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Categoria"
@@ -593,7 +597,7 @@ msgstr "Categoria"
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Produção deve ser cancelada antes de ser deletada"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Consumível"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Opcional"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Montagem"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Monitorado"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Alocado"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponível"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "No pedido"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Ordem de Produção"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Local"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Referência do pedido de produção"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Referência do pedido de venda"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Local de Origem"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Local de Destino"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Código de situação da produção"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Código de Lote"
@@ -883,8 +887,8 @@ msgstr "Data alvo final"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Data alvo para finalização de produção. Estará atrasado a partir deste dia."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Data de conclusão"
@@ -900,7 +904,7 @@ msgstr "Emitido por"
msgid "User who issued this build order"
msgstr "Usuário que emitiu este pedido de produção"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Prioridade deste pedido de produção"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Código do projeto"
@@ -962,9 +966,9 @@ msgstr "Saída da produção não corresponde ao Pedido de Produção"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Quantidade deve ser maior que zero"
@@ -999,7 +1003,7 @@ msgstr "Objeto de produção"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Quantidade deve ser 1 para estoque serializado"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Quantidade alocada ({q}) não deve exceder a quantidade disponível em estoque ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "O item do estoque está sobre-alocado"
@@ -1057,8 +1061,8 @@ msgstr "O item do estoque está sobre-alocado"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Item de estoque"
@@ -1082,7 +1086,7 @@ msgstr "Destino do Item do Estoque"
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Nome da Peça"
@@ -1139,7 +1143,7 @@ msgstr "Alocar Números de Série Automaticamente"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Alocar automaticamente os itens necessários com os números de série correspondentes"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Os seguintes números de série já existem ou são inválidos"
@@ -1272,7 +1276,7 @@ msgstr "Item da linha de produção"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bin_item.part deve indicar a mesma peça do pedido de produção"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Item deve estar em estoque"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Fornecedor da Peça"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Permitir variações"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Item LDM"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "Em Produção"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Estoque Disponível"
@@ -1527,31 +1531,31 @@ msgstr "Pedido de produção vencido"
msgid "Build order {bo} is now overdue"
msgstr "Pedido de produção {bo} está atrasada"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "É uma Ligação"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "É um arquivo"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "O Utilizador não tem permissão para remover este anexo"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr "Nenhum código de moeda válido foi fornecido"
msgid "No plugin"
msgstr "Sem extensão"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "A frase senha deve ser diferenciada"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Usuario"
@@ -1654,8 +1658,8 @@ msgstr "Usuario"
msgid "Price break quantity"
msgstr "Quantidade de Parcelamentos"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Preço"
@@ -1677,8 +1681,8 @@ msgstr "Nome para este webhook"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Ativo"
@@ -1686,7 +1690,7 @@ msgstr "Ativo"
msgid "Is this webhook active"
msgstr "Este gancho web está ativo"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr "Título"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definição"
msgid "Unit definition"
msgstr "Definição de unidade"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Anexo"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Valor"
@@ -2172,7 +2176,7 @@ msgstr "Opções válidas para este parâmetro (separadas por vírgulas)"
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Habilitado"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Modelo"
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Contexto"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Resultado"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Chave"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} cancelado"
msgid "A order that is assigned to you was canceled"
msgstr "Um pedido atribuído a você foi cancelado"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Itens Recebidos"
@@ -2524,7 +2528,7 @@ msgstr "Nome do arquivo"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr "Com que frequência atualizar as taxas de câmbio (defina como zero para
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "dias"
@@ -2914,8 +2918,8 @@ msgstr "Peças são modelos por padrão"
msgid "Parts can be assembled from other components by default"
msgstr "Peças podem ser montadas a partir de outros componentes por padrão"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Componente"
@@ -2931,7 +2935,7 @@ msgstr "Comprável"
msgid "Parts are purchaseable by default"
msgstr "Peças são compráveis por padrão"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Vendível"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Registro de erros que ocorrem ao gerar relatórios"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Tamanho da página"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Permitir que os itens que não estão em estoque sejam transferidos entre locais de estoque"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Produção"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Modelo necessário para gerar campo de referência do Pedido de Produção"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Requer Proprietário Responsável"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Um proprietário responsável deve ser atribuído a cada ordem"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Bloquear até os Testes serem Aprovados"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Impedir que as saídas da produção sejam concluídas até que todos os testes sejam aprovados"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Ativar Pedidos de Devolução"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Ativar funcionalidade de pedido de retorno na interface do usuário"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Devolução"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Editar os Pedidos de Devolução Concluídos"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Permitir a edição de pedidos de devolução após serem enviados ou concluídos"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Venda"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Modelo necessário para gerar campo de referência do Pedido de Venda"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Envio Padrão de Pedidos de Venda"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Habilitar criação de envio padrão com Pedidos de Vendas"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Editar os Pedidos de Vendas concluídos"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Permitir a edição de pedidos de vendas após serem enviados ou concluídos"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Modelo de Referência de Pedidos de Compras"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Modelo necessário para gerar campo de referência do Pedido de Compra"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Editar Pedidos de Compra Concluídos"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Permitir a edição de pedidos de compras após serem enviados ou concluídos"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Autocompletar Pedidos de Compra"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Marcar automaticamente os pedidos de compra como concluídos quando todos os itens de linha forem recebidos"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Habitar esquecer senha"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Habilitar a função \"Esqueci minha senha\" nas páginas de acesso"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Habilitar cadastro"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Ativar auto-registro para usuários na página de entrada"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Ativar SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Ativar SSO na página de acesso"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Ativar registro SSO"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Ativar auto-registro por SSO para usuários na página de entrada"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Email obrigatório"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Exigir do usuário o e-mail no cadastro"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Auto-preencher usuários SSO"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Preencher automaticamente os detalhes do usuário a partir de dados da conta SSO"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Enviar email duplo"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "No registro pedir aos usuários duas vezes pelo email"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Senha duas vezes"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "No registro pedir aos usuários duas vezes pela senha"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Domínios permitidos"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Restringir registros a certos domínios (separados por vírgula, começando com @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Grupo no cadastro"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Forçar AMF"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Os usuários devem usar uma segurança multifator."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Checar extensões no início"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Checar que todas as extensões instaladas no início — ativar em ambientes de contêineres"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Verificar por atualizações de plugin"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Habilitar verificações periódicas de atualizações para plugins instalados"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Ativar integração URL"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Ativar extensão para adicionar rotas URL"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Ativar integração de navegação"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Ativar extensões para integrar à navegação"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Ativa integração com aplicativo"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Ativar extensões para adicionar aplicativos"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Ativar integração do calendário"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Ativar extensões para executar tarefas agendadas"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Ativar integração de eventos"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Ativar extensões para responder a eventos internos"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Excluir Locais Externos"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Período de Balanço Automático"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Mostrar nomes completos dos usuários"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Mostrar Nomes Completos em vez de Nomes de Usuário"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Um domínio vazio não é permitido."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Nome de domínio inválido: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Fabricante"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Empresa"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Endereço de e-mail do contato"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Contato"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Endereço"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Link para as informações do endereço (externo)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Peça do Fabricante"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Selecionar fabricante"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "NPF"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Parte do fabricante vinculado deve fazer referência à mesma peça base"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Fornecedor"
@@ -4448,7 +4460,7 @@ msgstr "Fornecedor"
msgid "Select supplier"
msgstr "Selecione o fornecedor"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Unidade de reserva de estoque fornecedor"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Taxa mínima (ex.: taxa de estoque)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Embalagem"
@@ -4533,7 +4545,7 @@ msgstr "Moeda padrão utilizada para este fornecedor"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Em Estoque"
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Válido"
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Desconhecido"
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Grupo"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Referência do Pedido"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Criado por"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Pedido"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Peça Interna"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Concluído"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Pedido de Compra"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Pedido de Compra"
msgid "Sales Order"
msgstr "Pedido de Venda"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Devolver pedido"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr "Descrição do pedido (opcional)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Selecione o código do projeto para este pedido"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Link para página externa"
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Data alvo"
@@ -5184,487 +5196,487 @@ msgstr "Ponto de contato para este pedido"
msgid "Company address for this order"
msgstr "Endereço da empresa para este pedido"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Referência do pedido"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Situação"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Situação do pedido de compra"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Empresa da qual os itens estão sendo encomendados"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Referencia do fornecedor"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Código de referência do pedido fornecedor"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "recebido por"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Dia que o pedido foi concluído"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Destino"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Fornecedor de peça deve corresponder a fornecedor da OC"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "O item de linha não corresponde ao pedido de compra"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Quantidade deve ser um número positivo"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Cliente"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Empresa para qual os itens foi vendidos"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Referência do Cliente "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Código de Referência do pedido do cliente"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Data de Envio"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "enviado por"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Apenas um pedido aberto pode ser marcado como completo"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Pedido não pode ser concluído, pois, há envios incompletos"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Pedido não pode ser concluído, pois, há itens na linha incompletos"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Quantidade do item"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Referência do Item em Linha"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Observações do Item de Linha"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Data alvo para este item de linha (deixe em branco para usar a data alvo do pedido)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Descrição item de linha (opcional)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Contexto adicional para esta linha"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Preço Unitário"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "A peça do fornecedor deve corresponder ao fornecedor"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Fornecedor da Peça"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Recebido"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Número de itens recebidos"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Preço de Compra"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Preço unitário de compra"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Apenas peças vendáveis podem ser atribuídas a um pedido de venda"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Preço de Venda"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Preço de venda unitário"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Enviado"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Quantidade enviada"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Data do envio"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Data de Entrega"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Data da entrega do envio"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Verificado por"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Usuário que verificou esta remessa"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Remessa"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Número do Envio"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Número de Rastreamento"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Informação de rastreamento da remessa"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Número da Fatura"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Número de referência para fatura associada"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "O pedido já foi enviado"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Remessa não foi alocada nos itens de estoque"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "O item do estoque não foi atribuído"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Não é possível alocar o item de estoque para uma linha de uma peça diferente"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Não é possível alocar uma linha sem uma peça"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "A quantidade de alocação não pode exceder a quantidade em estoque"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Quantidade alocada deve ser maior que zero"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Quantidade deve ser 1 para item de estoque serializado"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Pedidos de venda não coincidem com a remessa"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Remessa não coincide com pedido de venda"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Linha"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Referência de remessa do pedido de venda"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Selecione o item de estoque para alocar"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Insira a quantidade de atribuição de estoque"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Referência de Pedidos de Devolução"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Empresa da qual os itens estão sendo retornados"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Estado do pedido de retorno"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Selecione o item a ser devolvido pelo cliente"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Data de Recebimento"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Despesa/gastos"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Gastos com esta linha de itens"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Gastos para reparar e/ou devolver esta linha de itens"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Copiar Parâmetros"
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "Código (SKU)"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Numero interno do produto"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Digite o código do lote para itens de estoque recebidos"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Data de validade"
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr "Palavras-chave padrão para peças nesta categoria"
msgid "Icon"
msgstr "Ícone"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ícone (opcional)"
@@ -6349,7 +6369,7 @@ msgstr "Palavras-chave para melhorar a visibilidade nos resultados da pesquisa"
msgid "Part category"
msgstr "Categoria da Peça"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr "Revisão de peça ou número de versão"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Revisão"
@@ -6382,7 +6402,7 @@ msgstr "Validade Padrão"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Validade (em dias) para itens do estoque desta peça"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Estoque Mínimo"
@@ -6390,7 +6410,7 @@ msgstr "Estoque Mínimo"
msgid "Minimum allowed stock level"
msgstr "Nível mínimo de estoque permitido"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Estoque total disponível no momento do balanço"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Data"
@@ -6759,7 +6779,7 @@ msgstr "Sub peça"
msgid "Select part to be used in BOM"
msgstr "Selecionar peça a ser usada na LDM"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr "Categoria de peça pai"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Sub-categorias"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Moeda de compra deste item de estoque"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Peça Original"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Selecione a peça original para duplicar"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Copiar imagem"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Copiar imagem da peça original"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Copiar LDM"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Copiar lista de materiais da peça original"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Copiar dados do parâmetro da peça original"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Copiar Notas"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Copiar imagem da peça original"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Quantidade Inicial de Estoque"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Especificar a quantidade inicial de estoque para a peça. Se for zero, nenhum estoque é adicionado."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Local Inicial do Estoque"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Especifique o local do estoque inicial para esta Peça"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Selecione o fornecedor (ou deixe em branco para pular)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Selecione fabricante (ou deixe em branco para pular)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Número de Peça do Fabricante"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "A empresa selecionada não é um fornecedor válido"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "A empresa selecionada não é um fabricante válido"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "A peça do fabricante que corresponde a essa MPN já existe"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "A peça do fornecedor que corresponde a essa SKU já existe"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Nome da Categoria"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Produzindo"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Itens de Estoque"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Estoque Total"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Peça duplicada"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Copiar dados iniciais de outra peça"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Estoque inicial"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Criar peça com a quantidade inicial de estoque"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Informações do Fornecedor"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Adicionar informação inicial de fornecedor para esta peça"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Copiar Parâmetros da Categoria"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Copiar modelos de parâmetros a partir de categoria de peça selecionada"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Imagem Existente"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Nome de arquivo de uma imagem de peça existente"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "A imagem não existe"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Validar a Lista de Materiais completa"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Pode Produzir"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Preço Mínimo"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Sobrepor valor calculado para preço mínimo"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Moeda do preço mínimo"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Preço Máximo"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Sobrepor valor calculado para preço máximo"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Moeda do preço máximo"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Atualizar"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Atualizar preços desta peça"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Não foi possível converter das moedas fornecidas para {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Preço mínimo não pode ser maior que o preço máximo"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Preço máximo não pode ser menor que o preço mínimo"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Selecionar peça para copiar a LDM"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Remover Dado Existente"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Remova itens LDM existentes antes de copiar"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Incluir Herdados"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Incluir itens LDM que são herdados de peças modelo"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Pular Linhas inválidas"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Habilitar esta opção para pular linhas inválidas"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Copiar Peças Substitutas"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Copiar peças de substitutas quando duplicar itens de LDM"
@@ -7326,91 +7346,91 @@ msgstr "Nenhuma ação especificada"
msgid "No matching action found"
msgstr "Nenhuma ação correspondente encontrada"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Nenhum resultado encontrado para os dados do código de barras"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Coincidência encontrada para dados de código de barras"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Código de barras corresponde ao item existente"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Nenhuma informação de peça correspondente encontrada"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Nenhuma peça de fornecedor correspondente encontrada"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Múltiplas peças de fornecedores correspondentes encontradas"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Peça de fornecedor correspondente"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Item do pedido já foi recebido"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Diversos itens de linha correspondentes encontrados"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Nenhum item de linha correspondente encontrado"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Código de barras não corresponde a item de estoque válido"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Item do estoque não corresponde ao item de linha"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Estoque insuficiente disponível"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Item de estoque atribuído para pedido de venda"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Não há informação suficiente"
@@ -7992,7 +8012,7 @@ msgstr "Borda"
msgid "Print a border around each label"
msgstr "Imprima uma borda em torno de cada etiqueta"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Paisagem"
@@ -8072,77 +8092,77 @@ msgstr "Fornece suporte para escanear códigos de barras TME"
msgid "The Supplier which acts as 'TME'"
msgstr "O fornecedor que atua como 'TME'"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Plugin instalado com sucesso"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin instalado na {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr "Extensões"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Nenhum autor encontrado"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "A extensão '{p}' não é compatível com a versão atual do InvenTree {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Extensão requer pelo menos a versão {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Extensão requer no máximo a versão {v}"
@@ -8481,136 +8501,136 @@ msgstr "Ofício"
msgid "Letter"
msgstr "Carta"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Nome do modelo"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Padrão de Nome de Arquivo"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtros"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Tamanho da página para relatórios PDF"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Renderizar relatório em orientação paisagem"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Largura [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Largura da etiqueta, em mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Altura [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Altura da Etiqueta, em mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Recorte"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Relatar arquivo de recorte"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Descrição do arquivo de recorte"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Patrimônio"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Reportar arquivo de ativos"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Descrição do arquivo de ativos"
@@ -8766,200 +8786,200 @@ msgstr "Nenhum resultado"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Arquivo de imagem não encontrado"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "Tag part_image necessita de uma instância de Peça"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "Tag company_image necessita de uma instância de Empresa"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Código da situação"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Localização externa"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Árvore de Peças"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Data de validade antes"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Data de validade depois"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Inativo"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Quantidade obrigatória"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Uma peça válida deve ser fornecida"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "A peça do fornecedor informado não existe"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "A peça do fornecedor tem um tamanho de pacote definido, mas o item use_pack_size não foi definida"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Números de série não podem ser fornecidos para uma parte não rastreável"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Selecionar Responsável"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Os itens de estoque podem não estar diretamente localizados em um local de estoque estrutural, mas podem ser localizados em locais filhos."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Externo"
@@ -9101,7 +9121,7 @@ msgstr "Selecione uma peça do fornecedor correspondente para este item de estoq
msgid "Where is this stock item located?"
msgstr "Onde está localizado este item de estoque?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Embalagem deste item de estoque está armazenado em"
@@ -9117,7 +9137,7 @@ msgstr "Este item está instalado em outro item?"
msgid "Serial number for this item"
msgstr "Número de série para este item"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Código do lote para este item de estoque"
@@ -9206,7 +9226,7 @@ msgstr "A quantidade não corresponde aos números de série"
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr "item em estoque contem outro(s) items"
msgid "Stock item has been assigned to a customer"
msgstr "Item em estoque foi reservado para outro cliente"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Item no estoque está em produção no momento"
@@ -9234,7 +9254,7 @@ msgstr "Item no estoque está em produção no momento"
msgid "Serialized stock cannot be merged"
msgstr "Itens de série não podem ser mesclados"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Item de estoque duplicado"
@@ -9250,71 +9270,71 @@ msgstr "Itens de estoque devem se referir à mesma peça do fornecedor"
msgid "Stock status codes must match"
msgstr "Códigos de estado do estoque devem corresponder"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Item do estoque não pode ser realocado se não houver estoque da mesma"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Observações de entrada"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Deve-se fornecer o valor desse teste"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "O anexo deve ser enviado para este teste"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Resultado do teste"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Valor da saída do teste"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Anexo do resultado do teste"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Notas do teste"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr "Inserir número de série para novos itens"
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Expirado"
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Quantidade não deve exceder a quantidade disponível em estoque ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Local de destino do estoque"
@@ -9501,127 +9521,131 @@ msgstr "Selecionar itens de estoque para mudar estados"
msgid "No stock items selected"
msgstr "Nenhum item de estoque selecionado"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Sub-locais"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Parte deve ser comercializável"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "Item é alocado para um pedido de venda"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Item está alocado a um pedido de produção"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Cliente para atribuir itens de estoque"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "A empresa selecionada não é um cliente"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Nodas atribuídas a estoque"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Uma lista de item de estoque deve ser providenciada"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Notas de fusão de estoque"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Permitir fornecedores divergentes"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Permitir a fusão de itens de estoque de fornecedores diferentes"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Permitir estado incompatível"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Permitir a fusão de itens de estoque com estado diferentes"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Ao menos dois itens de estoque devem ser providenciados"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Valor da chave primária do Item Estoque"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Notas da transação de estoque"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Notas da transação de estoque"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr "Permissões"
msgid "Important dates"
msgstr "Datas importantes"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "O token foi revogado"
@@ -9927,163 +9951,163 @@ msgstr "O token foi revogado"
msgid "Token has expired"
msgstr "Token expirou"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "Token da API"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "Tokens de API"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Nome do Token"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Nome de token personalizado"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Data de validade do token"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Visto pela Última Vez"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Última vez que o token foi usado"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Revogado"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Permissão definida"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Visualizar"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Permissão para ver itens"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Adicionar"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Permissão para adicionar itens"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Alterar"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Permissões para editar itens"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Excluir"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Permissão para excluir itens"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po
index 89d30a054c..f54a06c881 100644
--- a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API endpoint não encontrado"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr "Uma lista de itens deve ser fornecida para a operação em massa"
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Os itens devem ser fornecidos como lista"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Lista de itens inválida fornecida"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Todos os filtros devem ser usados apenas como verdadeiro"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Nenhum item corresponde com os critérios fornecidos"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Nenhum dado fornecido"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Este campo deve ser único."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "O usuário não tem permissão para visualizar esse modelo"
@@ -65,11 +65,11 @@ msgstr "E-mail de confirmação"
msgid "You must type the same email each time."
msgstr "Você deve digitar o mesmo e-mail todas às vezes."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "O endereço de e-mail fornecido não é válido."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "O domínio de e-mail fornecido não foi aprovado."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Não foi possível converter {original} para {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Quantidade inválida"
@@ -105,22 +105,22 @@ msgstr "Informe a data"
msgid "Invalid decimal value"
msgstr "Valor decimal inválido"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Observações"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "O valor '{name}' não aparece no formato padrão"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "O valor fornecido não corresponde ao padrão exigido: "
@@ -164,51 +164,51 @@ msgstr "Remover as \"tags\" HTML deste valor"
msgid "Data contains prohibited markdown content"
msgstr "Os dados contêm conteúdo de marcação proibido"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr "URL inválida: sem nome de host"
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr "URL inválida: não foi possível resolver o nome de host"
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr "A URL aponta para um endereço IP privado ou reservado"
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr "Redirecionamentos em excesso"
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Erro de conexão"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "O servidor respondeu com código de estado inválido"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Ocorreu uma exceção"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "O servidor respondeu com valor inválido do tamanho de conteúdo"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "O tamanho da imagem é grande demais"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "O download da imagem excedeu seu tamanho máximo"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "O servidor remoto retornou uma resposta vazia"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "A URL fornecida não é um arquivo de imagem válido"
@@ -220,117 +220,121 @@ msgstr "Entrar no aplicativo"
msgid "Email"
msgstr "E-mail"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr "Falha na verificação CSRF. Certifique-se de que INVENTREE_SITE_URL e INVENTREE_TRUSTED_ORIGINS estejam configurados corretamente."
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Você deve habilitar a autenticação de dois fatores antes de fazer qualquer coisa."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Erro ao executar a validação do plugin"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadados deve ser um objeto dict python"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Plugin de metadados"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Campo de metadados JSON, para uso de plugins externos"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Padrão formatado incorretamente"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Chave de formato desconhecida especificada"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Chave de formato obrigatório ausente"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "O campo de referência não deve ficar vazio"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "A referência deve corresponder ao padrão exigido"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "O número de referência é muito longo"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Escolha inválida"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Nome"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Descrição"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Descrição (opcional)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Caminho"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Nomes duplicados não podem existir sob o mesmo parental"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Notas markdown (opcional)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Dados de código de barras"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Dados de código de barras de terceiros"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Hash de código de barras"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Hash exclusivo de dados de código de barras"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Código de barras existente encontrado"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Erro de servidor"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Um erro foi registrado pelo servidor."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Deve ser um número válido"
msgid "Currency"
msgstr "Moeda"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Selecione a moeda entre as opções disponíveis"
@@ -521,11 +525,11 @@ msgstr "Chinês (simplificado)"
msgid "Chinese (Traditional)"
msgstr "Chinês (tradicional)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Atualização disponível"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Uma atualização para o InvenTree está disponível"
@@ -537,7 +541,7 @@ msgstr "Unidade física inválida"
msgid "Not a valid currency code"
msgstr "O código de moeda não é válido"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Status de pedido"
@@ -546,23 +550,23 @@ msgstr "Status de pedido"
msgid "Parent Build"
msgstr "Produção principal"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Incluir variáveis"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Incluir variáveis"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Incluir variáveis"
msgid "Part"
msgstr "Peça"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Categoria"
@@ -593,7 +597,7 @@ msgstr "Categoria"
msgid "Ancestor Build"
msgstr "Construção de ancestrais"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Atribuído a mim"
@@ -601,11 +605,11 @@ msgstr "Atribuído a mim"
msgid "Assigned To"
msgstr "Atribuído a"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Criado antes"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Criado após"
@@ -641,99 +645,99 @@ msgstr "Concluído antes"
msgid "Completed after"
msgstr "Concluído após"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Data mínima"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Data máxima"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Excluir árvore"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "A produção deve ser cancelada antes de ser excluída"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Consumível"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Opcional"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Montagem"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Rastreado"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Testável"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Pedido pendente"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Alocado"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Consumido"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponível"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "Em pedido"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr "Produção não encontrada"
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Pedido de produção"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Local"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Saída"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Filtrar por ID do item de estoque de saída. Use 'null' para encontrar itens de produção não instalados."
@@ -773,9 +777,9 @@ msgstr "A data limite deve ser posterior à data inicial"
msgid "Build Order Reference"
msgstr "Referência do pedido de produção"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Referência do pedido de venda"
msgid "Sales Order to which this build is allocated"
msgstr "Pedido de venda ao qual esta produção está alocada"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Local de origem"
@@ -821,7 +825,7 @@ msgstr "Produção externa"
msgid "This build order is fulfilled externally"
msgstr "Este pedido de produção é atendido externamente"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Local de destino"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Código de situação da produção"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Código do lote"
@@ -883,8 +887,8 @@ msgstr "Data alvo final"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Data limite para finalização de produção. Estará atrasado a partir deste dia."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Data de conclusão"
@@ -900,7 +904,7 @@ msgstr "Emitido por"
msgid "User who issued this build order"
msgstr "Usuário que emitiu este pedido de produção"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Prioridade deste pedido de produção"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Código do projeto"
@@ -962,9 +966,9 @@ msgstr "Saída da produção não corresponde à pedido de produção"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Quantidade deve ser maior que zero"
@@ -999,7 +1003,7 @@ msgstr "Compilar objeto"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Quantidade deve ser 1 para estoque serializado"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Quantidade alocada ({q}) não deve exceder a quantidade disponível em estoque ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "O item de estoque está superalocado"
@@ -1057,8 +1061,8 @@ msgstr "O item de estoque está superalocado"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Item de estoque"
@@ -1082,7 +1086,7 @@ msgstr "Destino do item do estoque"
msgid "Build Level"
msgstr "Nível de produção"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Nome da peça"
@@ -1139,7 +1143,7 @@ msgstr "Alocar números de série automaticamente"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Alocar automaticamente os itens necessários com os números de série correspondentes"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Os seguintes números de série já existem ou são inválidos"
@@ -1272,7 +1276,7 @@ msgstr "Item da linha de produção"
msgid "bom_item.part must point to the same part as the build order"
msgstr "Bom_item.part deve apontar para a mesma peça que a pedido de produção"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "O item deve estar em estoque"
@@ -1385,8 +1389,8 @@ msgstr "Instalar em"
msgid "Build"
msgstr "Produção"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Fornecedor da peça"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Permitir variantes"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Item BOM"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "Em produção"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "Agendado para produção"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Estoque externo"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Estoque disponível"
@@ -1527,31 +1531,31 @@ msgstr "Pedido de produção vencido"
msgid "Build order {bo} is now overdue"
msgstr "Pedido de produção {bo} está atrasada"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr "Tem miniatura"
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "É um link"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "É um arquivo"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "O usuário não tem permissão para excluir esses anexos"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr "O usuário não tem permissão para editar este anexo"
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "O usuário não tem permissão para excluir esse anexo"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Lista de seleção bloqueada"
@@ -1571,8 +1575,8 @@ msgstr "Nenhum código de moeda válido fornecido"
msgid "No plugin"
msgstr "Sem extensão"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr "Marcadores"
@@ -1645,8 +1649,8 @@ msgstr "A frase senha deve ser diferenciada"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Usuário"
@@ -1654,8 +1658,8 @@ msgstr "Usuário"
msgid "Price break quantity"
msgstr "Quantidade de parcelamentos"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Preço"
@@ -1677,8 +1681,8 @@ msgstr "Nome para este webhook"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Ativo"
@@ -1686,7 +1690,7 @@ msgstr "Ativo"
msgid "Is this webhook active"
msgstr "Este webhook está ativo"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Ficha"
@@ -1756,7 +1760,7 @@ msgstr "Título"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definição"
msgid "Unit definition"
msgstr "Definição de unidade"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Anexo"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "Chave lógica de estado que é igual a este estado personalizado na lógica de negócios"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Valor"
@@ -2172,7 +2176,7 @@ msgstr "Opções válidas para este parâmetro (separadas por vírgula)"
msgid "Selection list for this parameter"
msgstr "Lista de seleção para este parâmetro"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Habilitado"
@@ -2204,8 +2208,8 @@ msgstr "ID do modelo"
msgid "ID of the target model for this parameter"
msgstr "ID do modelo de destino para este parâmetro"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Modelo"
@@ -2262,7 +2266,7 @@ msgstr "Data/hora da verificação do código de barras"
msgid "URL endpoint which processed the barcode"
msgstr "O endpoint da URL que processou o código de barras"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Contexto"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Dados de resposta da verificação de código de barras"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Resultado"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "Tópicos de e-mail"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Chave"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} cancelado"
msgid "A order that is assigned to you was canceled"
msgstr "Um pedido atribuído a você foi cancelado"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Itens recebidos"
@@ -2524,7 +2528,7 @@ msgstr "Nome do arquivo"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Categoria de modelo"
@@ -2669,8 +2673,8 @@ msgstr "Com que frequência atualizar as taxas de câmbio (defina como zero para
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "Dias"
@@ -2914,8 +2918,8 @@ msgstr "Peças são modelos por padrão"
msgid "Parts can be assembled from other components by default"
msgstr "Peças podem ser montadas a partir de outros componentes por padrão"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Componente"
@@ -2931,7 +2935,7 @@ msgstr "Comprável"
msgid "Parts are purchaseable by default"
msgstr "Peças são compráveis por padrão"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Comercializável"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Registrar erros que ocorrem ao gerar relatórios"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Tamanho da página"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Permitir que os itens que não estão em estoque sejam transferidos entre locais de estoque"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Modelo de referência de pedidos de produção"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Modelo necessário para gerar campo de referência do pedido de produção"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Exigir proprietário responsável"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Um proprietário responsável deve ser atribuído a cada pedido"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Requer peça ativa"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Impedir a criação de ordem para peças inativas"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Exigir peça bloqueada"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Impedir criação de pedidos para peças desbloqueadas"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "Exigir validade, BOM"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Impedir criação de pedido de produção a menos que lista de materiais tenha sido validada"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "Exigir pedidos secundários fechados"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Impedir o preenchimento do pedido de construção até que todos os pedidos secundários sejam fechados"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "Pedido de produção externo"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "Ativar funcionalidade de pedido de construção externa"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr "Exigir pedidos de produção externos"
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr "Exigir um pedido de produção externo ao solicitar peças montadas de um fornecedor externo"
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Bloquear até passagem de testes"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Impedir que as saídas da produção sejam concluídas até que todos os testes necessários passem"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Ativar pedidos de devolução"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Ativar funcionalidade de pedido de devolução na interface do usuário"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Modelo de referência de pedidos de devolução"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Modelo necessário para gerar campo de referência do pedido de devolução"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Editar os pedidos de devolução concluídos"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Permitir a edição de pedidos de devolução após serem enviados ou concluídos"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Modelo de referência de pedidos de venda"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Modelo necessário para gerar campo de referência do pedido de venda"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Envio padrão de pedidos de venda"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Habilitar criação de envio padrão com pedidos de vendas"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Editar os pedidos de vendas concluídos"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Permitir a edição de pedidos de vendas após serem enviados ou concluídos"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "Remessa requer verificação"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "Impedir a conclusão de remessas até que os itens sejam verificados"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Marcar pedidos enviados como concluídos"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Pedidos de vendas marcados como enviados automaticamente serão concluídos, ignorando o status \"enviado\""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr "Habilitar pedidos de transferência"
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr "Habilitar a funcionalidade de pedido de transferência na interface do usuário"
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr "Padrão de referência do pedido de transferência"
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr "Padrão obrigatório para gerar o campo de referência do pedido de transferência"
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr "Bloquear testes de item incompletos"
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr "Impedir a alocação de itens de estoque a pedidos de venda se os testes obrigatórios do item estiverem incompletos"
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Modelo de referência de pedidos de compras"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Modelo necessário para gerar campo de referência do pedido de compra"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Editar pedidos de compra concluídos"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Permitir a edição de pedidos de compras após serem enviados ou concluídos"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Converter moeda"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "Converter valor de item para moeda base quando receber o estoque"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Completar automaticamente os pedidos de compra"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Marcar automaticamente os pedidos de compra como concluídos quando todos os itens de linha forem recebidos"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Ativar senha esquecida"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Ativar a função \"Esqueci minha senha\" nas páginas de acesso"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Ativar cadastro"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Ativar auto-registro para usuários na página de entrada"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Ativar SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Ativar SSO na página de acesso"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Ativar registro SSO"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Ativar auto-registro via SSO para usuários nas páginas de login"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "Ativar sincronização de grupo SSO"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Ativar sincronização de grupos do InvenTree com grupos fornecidos pelo IdP"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "Chave de grupo SSO"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "O nome dos grupos reivindicam o atributo fornecido pelo IdP"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "Mapa do grupo SSO"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "Um mapeamento de grupos de SSO para grupos locais de InvenTree. Se o grupo local não existir, será criado."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Remover grupos fora do SSO"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "Se os grupos atribuídos ao usuário devem ser removidos somente se eles não são o backend pelo IdP. Pois essa configuração desabilitada pode causar problemas de segurança"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "E-mail obrigatório"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Exigir do usuário o e-mail no cadastro"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Auto-preencher usuários SSO"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Preencher automaticamente os detalhes do usuário a partir de dados da conta SSO"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Enviar e-mail duplo"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Ao se registrar, peça aos usuários duas vezes por seus e-mails"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Senha duas vezes"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "No registro pedir aos usuários duas vezes pela senha"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Domínios permitidos"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Restringir registros a certos domínios (separados por vírgula, começando com @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Grupo no cadastro"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Grupo ao qual novos usuários serão atribuídos ao registro. Se a sincronização de grupo SSO estiver ativada, este grupo só estará definido se nenhum grupo puder ser atribuído a partir do IdP."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Forçar AMF"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Os usuários devem usar uma segurança multifatorial."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr "Habilitar esta configuração exigirá que todos os usuários configurem a autenticação multifator. Todas as sessões serão desconectadas imediatamente."
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Verificar extensões na inicialização"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Checar que todas as extensões instaladas no início — ativar em ambientes de contêineres"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Verificar por atualizações de extensão"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Ativar verificações periódicas de atualizações para a extensão instalados"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Ativar integração URL"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Ativar extensão para adicionar rotas URL"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Ativar integração de navegação"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Ativar extensões para integrar à navegação"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Ativar integração com aplicativo"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Ativar extensões para adicionar aplicativos"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Ativar integração com agendas"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Ativar extensões para executar tarefas agendadas"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Ativar integração de eventos"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Ativar extensões para responder a eventos internos"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Ativar integração de interface"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Ativar extensões para integrar na interface do usuário"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "Ativar integração com o e-mail"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "Ativar extensão para processar e-mails de saída/entrada"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "Ativar códigos de projeto"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Ativar códigos de projeto para rastrear projetos"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr "Habilitar inventário"
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "Ativar funcionalidade para gravação de níveis e valor de estoque históricos"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Excluir locais externos"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Excluir dos cálculos de inventário os itens de estoque em locais externos"
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Período de contagem automática"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr "Número de dias entre os registros automáticos de inventário"
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr "Excluir registros de inventário antigos"
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr "Excluir registros de inventário com mais dias do que o especificado"
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr "Intervalo de exclusão de inventário"
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr "Os registros de inventário serão excluídos após o número de dias especificado"
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr "Excluir registros de rastreamento de estoque antigos"
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr "Excluir registros de rastreamento de estoque com mais dias do que o especificado"
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr "Intervalo de exclusão de rastreamento de estoque"
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr "Os registros de rastreamento de estoque serão excluídos após o número de dias especificado"
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Exibir nomes completos dos usuários"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Exibir nomes completos dos usuários em vez de nomes de usuários"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "Exibir perfis de usuário"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "Exibir perfis de usuários em sua página de perfil"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr "Semana começa em"
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr "Dia inicial da semana, para exibição nas visualizações de calendário"
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr "Domingo"
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr "Segunda-feira"
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr "Terça-feira"
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr "Quarta-feira"
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr "Quinta-feira"
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr "Sexta-feira"
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr "Sábado"
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr "Horizonte do calendário"
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr "Número de meses no futuro a exibir nas visualizações de calendário"
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr "meses"
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Ativar dados da estação de teste"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Ativar coleção de dados da estação de teste para resultados de teste"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "Habilitar ping de máquina"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "Habilitar a tarefa periódica de ping das máquinas registradas para verificar seu status"
@@ -4128,49 +4140,49 @@ msgstr "Exibir itens no nível final"
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr "Exibir automaticamente itens/peças em vez de subníveis para locais ou categorias sem filhos"
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "Todos os modelos"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "Nenhum modelo de anexo fornecido"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Categoria de modelo de anexo inválido"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr "O tamanho do arquivo excede o limite máximo de envio de {max_size} MB"
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr "Nome de arquivo inválido"
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "Os lugares mínimos não podem ser maiores que os máximos"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "Os lugares maiores não podem ser menores que os máximos"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Um domínio vazio não é permitido."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Nome de domínio inválido: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "Valor deve ser maiúsculo"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "O valor deve ser um identificador de variável válido"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "O fornecedor está ativo"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Fabricante"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Empresa"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Endereço de e-mail do contato"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Contato"
@@ -4297,7 +4309,7 @@ msgstr "CNPJ"
msgid "Company Tax ID"
msgstr "CNPJ da empresa"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Endereço"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Link para as informações do endereço (externo)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Fabricante da peça"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Selecionar fabricante"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "NPF"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Peça do fabricante vinculado deve fazer referência à mesma peça base"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Fornecedor"
@@ -4448,7 +4460,7 @@ msgstr "Fornecedor"
msgid "Select supplier"
msgstr "Selecione o fornecedor"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Unidade de reserva de estoque fornecedor"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Taxa mínima (ex.: taxa de estoque)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Embalagem"
@@ -4533,7 +4545,7 @@ msgstr "Moeda padrão utilizada para este fornecedor"
msgid "Company Name"
msgstr "Nome da empresa"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Em estoque"
@@ -4643,11 +4655,11 @@ msgstr "Alguns campos necessários não foram mapeados"
#: importer/models.py:413
msgid "Completed Row Count History"
-msgstr ""
+msgstr "Histórico de contagem de linhas concluídas"
#: importer/models.py:416
msgid "Row Count History"
-msgstr ""
+msgstr "Histórico de contagem de linhas"
#: importer/models.py:439
msgid "ID"
@@ -4722,7 +4734,7 @@ msgstr "Dados da linha original"
msgid "Errors"
msgstr "Erros"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Válido"
@@ -4838,7 +4850,7 @@ msgstr "Número de cópias para cada rótulo"
msgid "Connected"
msgstr "Conectado"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Desconhecido"
@@ -4942,7 +4954,7 @@ msgstr "Chave da propriedade"
msgid "Value of the property"
msgstr "Valor da propriedade"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Grupo"
@@ -4966,118 +4978,118 @@ msgstr "Progresso máximo"
msgid "Maximum value for progress type, required if type=progress"
msgstr "Valor máximo para o tipo progresso, obrigatório se type=progress"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Referência do pedido"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Pendente"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Tem código do projeto"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Criado por"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Criado antes"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Criado após"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "Tem data inicial"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "Data inicial antes"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "Data inicial após"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "Tem data prevista"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Data prevista antes"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Data prevista antes"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr "Atualizado antes de"
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr "Atualizado após"
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Tem preço"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Concluído antes"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Concluído após"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "Pedido de produção vencido"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Pedido"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Pedido completo"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Peça interna"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Pedido pendente"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Concluído"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Possui envio"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr "Remessa não encontrada"
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Pedido de compra"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Pedido de compra"
msgid "Sales Order"
msgstr "Pedido de venda"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Pedido de devolução"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr "Pedido de transferência"
@@ -5135,11 +5147,11 @@ msgstr "O endereço não corresponde à empresa selecionada"
msgid "Order description (optional)"
msgstr "Descrição do pedido (opcional)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Selecione o código do projeto para este pedido"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Link para página externa"
@@ -5151,7 +5163,7 @@ msgstr "Data inicial"
msgid "Scheduled start date for this order"
msgstr "Data de início programada para esta encomenda"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Data prevista"
@@ -5184,487 +5196,487 @@ msgstr "Ponto de contato para este pedido"
msgid "Company address for this order"
msgstr "Endereço da empresa para este pedido"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Referência do pedido"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Status"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Estado do pedido"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Empresa da qual os itens estão sendo encomendados"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Referência do fornecedor"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Código de referência do pedido fornecedor"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "Recebido por"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Dia que o pedido foi concluído"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Destino"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Destino para os itens recebidos"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Fornecedor de peça deve corresponder a fornecedor da OC"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "O item de linha não corresponde ao pedido de compra"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "O item de linha está sem uma peça vinculada"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Quantidade deve ser um número positivo"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr "Números de série não podem ser atribuídos a peças virtuais"
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr "Permitir qualquer estoque (serializado ou não)"
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr "Apenas estoque serializado"
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr "Apenas estoque não serializado"
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Cliente"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Empresa para qual os itens foi vendidos"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Situação do pedido de venda"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Referência do cliente "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Código de referência do pedido do cliente"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Data de envio"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "Enviado por"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "O pedido já está completo"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "O pedido já está cancelado"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Apenas um pedido aberto pode ser marcado como completo"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Pedido não pode ser concluído, pois, há envios incompletos"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "O pedido não pode ser concluído, pois, há alocações incompletas"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "O pedido não pode ser concluído, pois, há itens de linha incompletos"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "O pedido está bloqueado e não pode ser modificado"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Quantidade do item"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr "Número da linha"
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr "Número da linha para este item (opcional)"
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Referência do item em linha"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Observações do item de linha"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Data limite para este item de linha (deixe em branco para usar a data limite do pedido)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Descrição do item de linha (opcional)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Contexto adicional para esta linha"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Preço unitário"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "Item de linha de pedido de compra"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "A peça do fornecedor deve corresponder ao fornecedor"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "Pedido de produção deve ser marcada como externa"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "Os pedidos de produção só podem ser vinculados a peças de montagem"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "Criar peça do pedido deve combinar a peça do item de linha"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr "Um pedido de produção externo é necessário para peças de montagem"
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Fornecedor da peça"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Recebido"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Número de itens recebidos"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Preço de compra"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Preço unitário de compra"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "Pedido de produção externa para ser preenchida por este item de linha"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "Linha extra do pedido de compra"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "Item de linha de pedido de vendas"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Apenas peças vendáveis podem ser atribuídas a um pedido de venda"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Preço de venda"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Preço de venda unitário"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Enviado"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Quantidade enviada"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "Envio do pedido de venda"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "O endereço da remessa deve corresponder ao cliente"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "Endereço de entrega desta remessa"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Data do envio"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Data de entrega"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Data da entrega do envio"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Verificado por"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Usuário que verificou este envio"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Envio"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Número do envio"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Número de rastreio"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Informação de rastreamento"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Número da nota fiscal"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Número de referência da nota fiscal associada"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "A remessa já foi enviada"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "A remessa não tem itens de estoque alocados"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "A remessa deve ser verificada antes de ser concluída"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "Linha extra do pedido de venda"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "Alocação do pedido de venda"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "O item de estoque não foi atribuído"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Não é possível alocar um item de estoque a uma linha com uma peça diferente"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Não é possível alocar estoque a uma linha sem peça"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "A quantidade alocada não pode exceder a quantidade em estoque"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Quantidade alocada deve ser maior que zero"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "A quantidade deve ser 1 para um item de estoque serializado"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "O pedido de venda não corresponde à remessa"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "A remessa não corresponde ao pedido de venda"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Linha"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Referência da remessa do pedido de venda"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Item"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Selecionar item de estoque a alocar"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Inserir a quantidade de alocação de estoque"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Referência do pedido de devolução"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Empresa da qual os itens estão sendo devolvidos"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Status do pedido de devolução"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "Item de linha do pedido de devolução"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "O item de estoque deve ser especificado"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "A quantidade de devolução excede a quantidade em estoque"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "A quantidade de devolução deve ser maior que zero"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Quantidade inválida para item de estoque serializado"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Selecionar item a devolver do cliente"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Data de recebimento"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr "A data em que este item de devolução foi recebido"
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Resultado"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Resultado para este item de linha"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Custo associado à devolução ou reparo deste item de linha"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "Linha extra do pedido de devolução"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr "Referência do pedido de transferência"
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr "Status do pedido de transferência"
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr "Origem dos itens transferidos"
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr "Destino dos itens transferidos"
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr "Consumir estoque"
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr "Em vez de transferir o estoque para o destino, \"consuma\" o estoque removendo a quantidade transferida do item de estoque alocado"
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr "O pedido não pode ser concluído até que um local de destino seja definido"
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr "O pedido não pode ser concluído até estar totalmente alocado"
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr "Item de linha do pedido de transferência"
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr "transferido"
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr "quantidade transferida"
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr "Alocação do pedido de transferência"
@@ -5692,7 +5704,7 @@ msgstr "Copiar linhas extras"
msgid "Copy extra line items from the original order"
msgstr "Copiar itens de linha extras do pedido original"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Copiar parâmetros"
@@ -5784,11 +5796,11 @@ msgstr "Mesclar itens"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Mesclar itens com a mesma peça, destino e data prevista em um único item de linha"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "Código (SKU)"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Número interno da peça"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Inserir código de lote para os itens de estoque recebidos"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Data de validade"
@@ -6056,123 +6068,131 @@ msgstr "Pedido de devolução atrasado"
msgid "Return order {ro} is now overdue"
msgstr "O pedido de devolução {ro} está atrasado"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Favorito"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Filtrar por categorias favoritas"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Profundidade"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Filtrar por profundidade da categoria"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Nível superior"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Filtrar por categorias de nível superior"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Cascata"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Incluir subcategorias nos resultados filtrados"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Pai"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Filtrar por categoria pai"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Excluir subcategorias da categoria especificada"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr "Nível máximo"
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr "Limitar a profundidade da árvore de categorias"
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Tem resultados"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "É variante"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "É revisão"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "Tem revisões"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "BOM válida"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "Categorias em cascata"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "Se verdadeiro, inclui itens nas categorias filhas da categoria informada"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Filtrar por ID numérico da categoria ou o literal 'null'"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr "A peça de montagem está ativa"
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr "A peça de montagem é rastreável"
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "A peça de montagem é testável"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr "A peça de montagem está bloqueada"
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr "A peça componente está ativa"
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr "A peça componente é rastreável"
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "A peça componente é testável"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr "A peça componente é uma montagem"
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr "A peça componente é virtual"
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr "Tem estoque disponível"
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Usos"
@@ -6213,7 +6233,7 @@ msgstr "Palavras-chave padrão para peças nesta categoria"
msgid "Icon"
msgstr "Ícone"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ícone (opcional)"
@@ -6349,7 +6369,7 @@ msgstr "Palavras-chave da peça para melhorar a visibilidade nos resultados de b
msgid "Part category"
msgstr "Categoria da peça"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6358,7 +6378,7 @@ msgstr "IPN"
msgid "Part revision or version number"
msgstr "Revisão da peça ou número da versão"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Revisão"
@@ -6382,7 +6402,7 @@ msgstr "Validade padrão"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Validade (em dias) para itens do estoque desta peça"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Estoque mínimo"
@@ -6390,7 +6410,7 @@ msgstr "Estoque mínimo"
msgid "Minimum allowed stock level"
msgstr "Nível mínimo de estoque permitido"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr "Estoque máximo"
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Estoque total disponível no momento do inventário"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Data"
@@ -6759,7 +6779,7 @@ msgstr "Sub peça"
msgid "Select part to be used in BOM"
msgstr "Selecionar peça a ser usada na lista de materiais"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr "Quantidade"
@@ -6911,351 +6931,351 @@ msgstr "Categoria pai"
msgid "Parent part category"
msgstr "Categoria de peça pai"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Subcategorias"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Resultados"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Número de resultados registrados para este modelo"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Moeda de compra deste item de estoque"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "O arquivo não é uma imagem"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Peça original"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Selecionar peça original para duplicar"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Copiar imagem"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Copiar imagem da peça original"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Copiar lista de materiais"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Copiar lista de materiais da peça original"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Copiar dados de parâmetro da peça original"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Copiar notas"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Copiar notas da peça original"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "Copiar testes"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "Copiar modelos de teste da peça original"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Quantidade inicial de estoque"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Especifique a quantidade inicial de estoque para esta peça. Se a quantidade for zero, nenhum estoque é adicionado."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Local inicial de estoque"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Especifique o local inicial de estoque para esta peça"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Selecionar fornecedor (ou deixar em branco para pular)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Selecionar fabricante (ou deixar em branco para pular)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Número de peça do fabricante"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "A empresa selecionada não é um fornecedor válido"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "A empresa selecionada não é um fabricante válido"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Já existe uma peça de fabricante com este MPN"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Já existe uma peça de fornecedor com este SKU"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Nome da categoria"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Em produção"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "Quantidade desta peça atualmente em produção"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Quantidade pendente desta peça programada para produção"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Itens de estoque"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Revisões"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Estoque total"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Estoque não alocado"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Estoque de variante"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Duplicar peça"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Copiar dados iniciais de outra peça"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Estoque inicial"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Criar peça com quantidade inicial de estoque"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Informações do fornecedor"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Adicionar informações iniciais de fornecedor para esta peça"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Copiar parâmetros da categoria"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Copiar modelos de parâmetro da categoria de peças selecionada"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Imagem existente"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Nome do arquivo de uma imagem de peça existente"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "O arquivo de imagem não existe"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Validar toda a lista de materiais"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Pode produzir"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "Necessário para pedidos de produção"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "Alocado para pedidos de produção"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "Necessário para pedidos de venda"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "Alocado para pedidos de venda"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr "IPN da peça"
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr "Descrição da peça"
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "Selecione uma peça para gerar informações de inventário para essa peça (e quaisquer peças variantes)"
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "Selecione uma categoria para incluir todas as peças dentro dela (e subcategorias)"
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "Selecione um local para incluir todas as peças com estoque nesse local (incluindo sublocais)"
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr "Gerar registros de inventário"
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr "Salvar registros de inventário para as peças selecionadas"
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr "Gerar relatório"
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr "Gerar um relatório de inventário para as peças selecionadas"
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Preço mínimo"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Substituir o valor calculado do preço mínimo"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Moeda do preço mínimo"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Preço máximo"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Substituir o valor calculado do preço máximo"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Moeda do preço máximo"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Atualizar"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Atualizar preços desta peça"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Não foi possível converter das moedas informadas para {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "O preço mínimo não pode ser maior que o preço máximo"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "O preço máximo não pode ser menor que o preço mínimo"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr "Quantidade necessária para este item (pode incluir unidades)"
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "Selecionar a montagem pai"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "Selecionar a peça componente"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr "Formato de quantidade inválido"
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Selecionar peça da qual copiar a lista de materiais"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Remover dados existentes"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Remover itens existentes da lista de materiais antes de copiar"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Incluir herdados"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Incluir itens da lista de materiais herdados de peças modelo"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Ignorar linhas inválidas"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Habilite essa opção para ignorar linhas inválidas"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Copiar peças substitutas"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Copiar peças substitutas ao duplicar itens da lista de materiais"
@@ -7326,91 +7346,91 @@ msgstr "Nenhuma ação especificada"
msgid "No matching action found"
msgstr "Nenhuma ação correspondente encontrada"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Nenhum resultado encontrado para os dados do código de barras"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Correspondência encontrada para dados de código de barras"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "Modelo não suportado"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "Instância do modelo não encontrada"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Código de barras corresponde ao item existente"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Nenhum dado de peça correspondente encontrado"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Nenhuma peça de fornecedor correspondente encontrada"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Várias peças de fornecedor correspondentes encontradas"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "Nenhum plugin correspondente encontrado para os dados do código de barras"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Peça de fornecedor correspondente"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "O item já foi recebido"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr "Pedido de compra encontrado\\rNenhuma peça de fornecedor correspondente"
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr "Peça de fornecedor encontrada\\rNenhum pedido de compra correspondente"
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "Nenhum plugin correspondente para o código de barras do fornecedor"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Vários itens de linha correspondentes encontrados"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Nenhum item de linha correspondente encontrado"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Nenhum pedido de venda fornecido"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "O código de barras não corresponde a um item de estoque existente"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "O item de estoque não corresponde ao item de linha"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Estoque disponível insuficiente"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Item de estoque alocado ao pedido de venda"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Informações insuficientes"
@@ -7992,7 +8012,7 @@ msgstr "Margem"
msgid "Print a border around each label"
msgstr "Imprimir uma borda ao redor de cada etiqueta"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Paisagem"
@@ -8072,77 +8092,77 @@ msgstr "Fornece suporte para ler códigos de barras da TME"
msgid "The Supplier which acts as 'TME'"
msgstr "O fornecedor que atua como 'TME'"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr "Apenas contas de superusuário podem administrar plugins"
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "A instalação de plugins está desabilitada"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr "Nenhum nome de pacote ou URL fornecido para instalação"
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr "Caracteres inválidos no nome do pacote ou URL"
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Plugin instalado com sucesso"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Plugin instalado em {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "O plugin não foi encontrado no registro"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "O plugin não é um plugin empacotado"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "Nome do pacote do plugin não encontrado"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "Apenas usuários da equipe podem administrar plugins"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "A desinstalação de plugins está desabilitada"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "O plugin não pode ser desinstalado porque está ativo no momento"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr "O plugin não pode ser desinstalado porque é obrigatório"
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr "O plugin não pode ser desinstalado porque é um plugin de exemplo"
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr "O plugin não pode ser desinstalado porque é um plugin integrado"
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "O plugin não está instalado"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "Instalação do plugin não encontrada"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "Plugin desinstalado com sucesso"
@@ -8194,21 +8214,21 @@ msgstr "Plugin empacotado"
msgid "Plugin"
msgstr "Plugin"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Nenhum autor encontrado"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "O plugin '{p}' não é compatível com a versão atual do InvenTree {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "O plugin requer pelo menos a versão {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "O plugin requer no máximo a versão {v}"
@@ -8481,136 +8501,136 @@ msgstr "Ofício"
msgid "Letter"
msgstr "Carta"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "Já existe um arquivo de modelo com este nome"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Nome do modelo"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Descrição do modelo"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "Número da revisão (incrementa automaticamente)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Anexar ao modelo ao imprimir"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Salvar a saída do relatório como anexo na instância do modelo vinculado ao imprimir"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Padrão de nome de arquivo"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "Padrão para gerar nomes de arquivo"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "O modelo está habilitado"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "Tipo de modelo de destino para o modelo"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtros"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "Filtros de consulta do modelo (lista separada por vírgula de pares chave=valor)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Arquivo modelo"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Tamanho da página para relatórios PDF"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Renderizar o relatório na orientação paisagem"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "Mesclar"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr "Renderizar um único relatório para os itens selecionados"
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "Relatório gerado a partir do modelo {self.name}"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr "Erro de sintaxe no modelo"
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr "Erro ao renderizar o relatório"
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "Erro ao gerar o relatório"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr "Erro ao mesclar as saídas do relatório"
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Largura [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Largura da etiqueta, em mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Altura [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Altura da etiqueta, em mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "Erro ao imprimir etiquetas"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Trecho"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Arquivo de trecho do relatório"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Descrição do arquivo de trecho"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Recurso"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Arquivo de recurso do relatório"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Descrição do arquivo de recurso"
@@ -8766,200 +8786,200 @@ msgstr "Sem resultado"
msgid "Transferred"
msgstr "Transferido"
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr "Caminho de arquivo de mídia inválido"
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr "Caminho de arquivo estático inválido"
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr "Arquivo de recurso não encontrado"
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Arquivo de imagem não encontrado"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr "Nenhum arquivo de imagem especificado"
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "A tag part_image requer uma instância de Part"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "A tag company_image requer uma instância de Company"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "Filtrar por profundidade do local"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "Filtrar por locais de nível superior"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "Incluir sublocais nos resultados filtrados"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Local pai"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Filtrar por local pai"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Nome da peça (não diferencia maiúsculas)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "Nome da peça contém (não diferencia maiúsculas)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Nome da peça (regex)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "IPN da peça (não diferencia maiúsculas)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "IPN da peça contém (não diferencia maiúsculas)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "IPN da peça (regex)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Estoque mínimo"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Estoque máximo"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Código de status"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Local externo"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "Consumido por pedido de produção"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "Instalado em outro item de estoque"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Árvore de peças"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Atualizado antes de"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Atualizado após"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Inventário antes de"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Inventário após"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr "Tem data de inventário"
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Data de validade antes de"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Data de validade após"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Parado"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr "Forneça a chave primária de um StockItem para excluir esse item e todos os seus descendentes"
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr "Locais em cascata"
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr "Se verdadeiro, inclui itens nos locais filhos do local informado"
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr "Filtrar por ID numérico do local ou o literal 'null'"
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "A quantidade é obrigatória"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Uma peça válida deve ser fornecida"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "A peça de fornecedor informada não existe"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "A peça de fornecedor tem um tamanho de pacote definido, mas o flag use_pack_size não está ativado"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Números de série não podem ser fornecidos para uma peça não rastreável"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr "Incluir instalados"
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr "Se verdadeiro, inclui resultados de teste dos itens instalados sob o item de estoque informado"
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr "Filtrar por ID numérico do item de estoque"
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr "O item de estoque com ID {id} não existe"
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr "Incluir variantes da peça"
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr "Data após"
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr "Data antes de"
@@ -8995,7 +9015,7 @@ msgstr "Selecionar responsável"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Os itens de estoque não podem ser alocados diretamente em locais de estoque estruturais, mas podem ser alocados em locais filhos."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Externo"
@@ -9101,7 +9121,7 @@ msgstr "Selecione uma peça de fornecedor correspondente para este item de estoq
msgid "Where is this stock item located?"
msgstr "Onde este item de estoque está localizado?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Embalagem em que este item de estoque é armazenado"
@@ -9117,7 +9137,7 @@ msgstr "Este item está instalado em outro item?"
msgid "Serial number for this item"
msgstr "Número de série deste item"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Código de lote deste item de estoque"
@@ -9206,7 +9226,7 @@ msgstr "A quantidade não corresponde aos números de série"
msgid "Cannot assign stock to structural location"
msgstr "Não é possível atribuir estoque a um local estrutural"
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "O modelo de teste não existe"
@@ -9226,7 +9246,7 @@ msgstr "O item de estoque contém outros itens"
msgid "Stock item has been assigned to a customer"
msgstr "O item de estoque foi atribuído a um cliente"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "O item de estoque está atualmente em produção"
@@ -9234,7 +9254,7 @@ msgstr "O item de estoque está atualmente em produção"
msgid "Serialized stock cannot be merged"
msgstr "Estoque serializado não pode ser mesclado"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Itens de estoque duplicados"
@@ -9250,71 +9270,71 @@ msgstr "Os itens de estoque devem se referir à mesma peça de fornecedor"
msgid "Stock status codes must match"
msgstr "Os códigos de status do estoque devem coincidir"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "O item de estoque não pode ser movido porque não está em estoque"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "Rastreamento do item de estoque"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Notas do registro"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "Resultado de teste do item de estoque"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Um valor deve ser fornecido para este teste"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Um anexo deve ser enviado para este teste"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "Valor inválido para este teste"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Resultado do teste"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Valor de saída do teste"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Anexo do resultado do teste"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Notas do teste"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "Estação de teste"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "O identificador da estação de teste onde o teste foi realizado"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Iniciado"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "A data/hora de início do teste"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Concluído"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "A data/hora de término do teste"
@@ -9398,7 +9418,7 @@ msgstr "Inserir números de série para os novos itens"
msgid "Supplier Part Number"
msgstr "Número de peça do fornecedor"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Vencido"
@@ -9428,8 +9448,8 @@ msgstr "Nenhum item de estoque fornecido"
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "A quantidade não pode exceder a quantidade de estoque disponível ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Local de estoque de destino"
@@ -9501,127 +9521,131 @@ msgstr "Selecionar itens de estoque para alterar o status"
msgid "No stock items selected"
msgstr "Nenhum item de estoque selecionado"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Sublocais"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr "Excluir itens de estoque"
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr "Excluir todos os itens de estoque contidos neste local"
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr "Excluir sublocais"
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr "Excluir todos os sublocais contidos neste local"
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "Local de estoque pai"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "A peça deve ser vendável"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "O item está alocado a um pedido de venda"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr "O item está alocado a um pedido de transferência"
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "O item está alocado a um pedido de produção"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Cliente para atribuir os itens de estoque"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "A empresa selecionada não é um cliente"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Notas da atribuição de estoque"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Uma lista de itens de estoque deve ser fornecida"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Notas da mesclagem de estoque"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Permitir fornecedores divergentes"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Permitir a mesclagem de itens de estoque com peças de fornecedor diferentes"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Permitir status divergente"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Permitir a mesclagem de itens de estoque com códigos de status diferentes"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Pelo menos dois itens de estoque devem ser fornecidos"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Sem alteração"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Valor da chave primária do StockItem"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "O item de estoque não está em estoque"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr "O item de estoque já está em estoque"
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr "A quantidade não pode ser negativa"
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Notas da transação de estoque"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr "Definir local de estoque para os itens contados (opcional)"
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr "Mesclar com o estoque existente"
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Notas da transação de estoque"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr "Definir local de estoque para os itens contados (opcional)"
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr "Mesclar itens devolvidos com itens de estoque existentes, se possível"
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "Próximo número de série"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "Número de série anterior"
@@ -9919,7 +9943,7 @@ msgstr "Permissões"
msgid "Important dates"
msgstr "Datas importantes"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "O token foi revogado"
@@ -9927,163 +9951,163 @@ msgstr "O token foi revogado"
msgid "Token has expired"
msgstr "O token expirou"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "Token de API"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "Tokens de API"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Nome do token"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Nome personalizado do token"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Data de validade do token"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Visto por último"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Última vez que o token foi usado"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Revogado"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Conjunto de permissões"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Visualizar"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Permissão para exibir itens"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Adicionar"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Permissão para adicionar itens"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Alterar"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Permissões para editar itens"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Excluir"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Permissão para excluir itens"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "Bot"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "Interno"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Convidado"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Idioma"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "Idioma preferencial para o usuário"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "Tema"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "Configurações da interface web em JSON - não edite manualmente!"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "Widgets"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "Configurações dos widgets do painel em JSON - não edite manualmente!"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Nome de exibição"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "Nome de exibição escolhido para o usuário"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "Cargo"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "Cargo ou posição principal"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "Mensagem de status do usuário"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "Informações de localização do usuário"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "O usuário está usando o sistema ativamente"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "Informações de contato preferenciais do usuário"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "Tipo de usuário"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "Que tipo de usuário é este?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "Organização"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "Organização/afiliação principal do usuário"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "Grupo principal"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "Grupo principal do usuário"
diff --git a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po
index d0fdb6c7ec..35834a2f87 100644
--- a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Language: ro_RO\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "Criteriul API final nu a fost găsit"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Articolele trebuie să fie furnizate ca o listă"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Listă de articole nevalidă furnizată"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Toate filtrele trebuie folosite doar cu adevărat"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Niciun articol nu corespunde criteriilor furnizate"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Nu sunt furnizate date"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Acest câmp trebuie să fie unic."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Utilizatorul nu are permisiunea de a vedea acest model"
@@ -65,11 +65,11 @@ msgstr "Confirmare adresă e-mail"
msgid "You must type the same email each time."
msgstr "Trebuie să tastați același e-mail de fiecare dată."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Adresa de e-mail principală furnizată nu este validă."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Domeniul de e-mail furnizat nu este aprobat."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Nu s-a putut converti {original} în {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Cantitate furnizata nevalida"
@@ -105,22 +105,22 @@ msgstr "Enter Date"
msgid "Invalid decimal value"
msgstr "Valoare zecimală nevalidă"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Notițe"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Valoarea '{name}' nu apare în formatul modelului"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Valoarea furnizată nu se potrivește cu modelul necesar: "
@@ -164,51 +164,51 @@ msgstr "Elimină tag-urile HTML din această valoare"
msgid "Data contains prohibited markdown content"
msgstr "Datele conţin conţinut de marcaje interzis"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Eroare de conexiune"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Serverul a răspuns cu un cod de stare invalid"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Excepție apărută"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Serverul a răspuns cu o valoare de Content-Length invalidă"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Dimensiunea imaginii este prea mare"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Descărcarea imaginii a depăşit dimensiunea maximă"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Serverul la distanță a returnat un răspuns gol"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "URL-ul furnizat nu este un fișier imagine valid"
@@ -220,117 +220,121 @@ msgstr "Conectați-vă la aplicație"
msgid "Email"
msgstr "E-mail"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Trebuie să activați autentificarea cu doi factori înainte de a face orice altceva."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Eroare la rularea validării plugin-ului"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadata trebuie să fie un obiect dict python"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Metadatele plugin"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Câmp de metadate JSON pentru utilizare de plugin-uri externe"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Model formatat incorect"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Format necunoscut cheie specificat"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Lipseste cheia de format"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Câmpul de referință nu poate fi gol"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Referința trebuie să corespundă modelului necesar"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Numărul de referință este prea mare"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Alegere invalidă"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Nume"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Descriere"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Descriere (opțional)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Cale"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Duplicate nume nu poate exista sub acelaşi părinte"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Note Markdown (opțional)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Date Cod de Bare"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Date coduri de bare terțe"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Date Cod de Bare"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Hash unic al codului de bare"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Cod de bare existent găsit"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Eroare de server"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "A fost înregistrată o eroare de către server."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Trebuie sa fie un număr valid"
msgid "Currency"
msgstr "Monedă"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Selectați moneda din opțiunile disponibile"
@@ -521,11 +525,11 @@ msgstr "Chineză (simplificată)"
msgid "Chinese (Traditional)"
msgstr "Chineză (tradițională)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Actualizare disponibilă"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "O actualizare pentru InvenTree este disponibilă"
@@ -537,7 +541,7 @@ msgstr "Unitate fizică nevalidă"
msgid "Not a valid currency code"
msgstr "Nu este un cod valutar valid"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Starea comenzii"
@@ -546,23 +550,23 @@ msgstr "Starea comenzii"
msgid "Parent Build"
msgstr "Construcție părinte"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "İnclude variante"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "İnclude variante"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "İnclude variante"
msgid "Part"
msgstr "Piesă"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Categorie"
@@ -593,7 +597,7 @@ msgstr "Categorie"
msgid "Ancestor Build"
msgstr "Ancestor Build"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Alocate mie"
@@ -601,11 +605,11 @@ msgstr "Alocate mie"
msgid "Assigned To"
msgstr "Atribuit către"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Creat înainte de"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Creat după"
@@ -641,99 +645,99 @@ msgstr "Finalizat înainte de"
msgid "Completed after"
msgstr "Finalizat după"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Dată min"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Dată maximă"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Exclude arbore"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Construcția trebuie anulată înainte de a putea fi ștearsă"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Consumabile"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Opţional"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Asamblate"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Urmarit"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Testabilă"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Comandă restantă"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Alocate"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Consumat"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Disponibil"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "Pe comandă"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Comenzi de Producție"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Locatie"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Ieșire"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Filtrează după ID-ul elementelor de ieșire din stoc. Utilizați \"null\" pentru a găsi elemente de construcție dezinstalate."
@@ -773,9 +777,9 @@ msgstr "Data țintă trebuie să fie după data de început"
msgid "Build Order Reference"
msgstr "Referință comandă producție"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Referință comandă de vânzare"
msgid "Sales Order to which this build is allocated"
msgstr "Comanda de vânzare pentru care această construcție este alocată"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Locație sursă"
@@ -821,7 +825,7 @@ msgstr "Construcție externă"
msgid "This build order is fulfilled externally"
msgstr "Această comandă de producție este îndeplinită extern"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Locul destinației"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Cod status producție"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Cod lot"
@@ -883,8 +887,8 @@ msgstr "Data finalizării țintă"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Data țintă pentru finalizarea construcției. Construcția va fi depășită după această dată."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Data completării"
@@ -900,7 +904,7 @@ msgstr "Emis de"
msgid "User who issued this build order"
msgstr "Utilizatorul care a emis această comandă de producție"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Prioritatea acestei comenzi de producție"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Cod proiect"
@@ -962,9 +966,9 @@ msgstr "Construcția nu se potrivește cu Comanda de producție"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Cantitatea trebuie să fie mai mare decât zero"
@@ -999,7 +1003,7 @@ msgstr "Construiește obiectul"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Cantitatea trebuie sa fie 1 pentru stoc serializat"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Cantitate alocata ({q}) nu trebuie sa depaseasca cantitatea disponibila de stoc ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Articolul din stoc este supra alocat"
@@ -1057,8 +1061,8 @@ msgstr "Articolul din stoc este supra alocat"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Articol Stoc"
@@ -1082,7 +1086,7 @@ msgstr "Destinație articol in stoc"
msgid "Build Level"
msgstr "Nivel de construcție"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Numele Piesei"
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr "Producție"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "În Producţie"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Stoc extern"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Stoc disponibil"
@@ -1527,31 +1531,31 @@ msgstr "Comandă de producție restantă"
msgid "Build order {bo} is now overdue"
msgstr "Comanda de producție {bo} este în întârziere"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Utilizator"
@@ -1654,8 +1658,8 @@ msgstr "Utilizator"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Preț"
@@ -1677,8 +1681,8 @@ msgstr "Nume pentru acest webhook"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Activ"
@@ -1686,7 +1690,7 @@ msgstr "Activ"
msgid "Is this webhook active"
msgstr "Este acest webhook activ"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token-ul"
@@ -1756,7 +1760,7 @@ msgstr "Titlu"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr ""
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr "Nume fișier"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Necesită Titularul Responsabil"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Titularul responsabil trebuie să fie atribuit fiecărei comenzi"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "Comenzi externe de producție"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Blochează până la trecerea testelor"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Previne ca ieșirile de construcție să fie finalizate până când toate testele necesare trec"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Comenzile de vânzare marcate ca expediate vor fi finalizate automat, ocolind starea \"expediate\""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Activează parola uitată"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Activare parolă uitată funcție pe paginile de autentificare"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Parola de două ori"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "La înscriere, cere de două ori parola lor"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Afișează numele complet al utilizatorilor în loc de nume de utilizator"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Id comandă"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr "Descrierea comenzii (opțional)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Descrierea elementului de rând (opțional)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr ""
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Introduceți codul lotului pentru articolele din stoc primite"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "Este versiune"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "Are Versiuni"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Versiunea"
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Versiunea"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr "Descrierea piesei"
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Descrierea șablonului"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "Număr versiune (creșteri automate)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Descrierea detaliată a fișierului"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Descriere fișier Asset"
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Codul lotului pentru acest element din stoc"
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po
index 88314401d8..44a302a2f7 100644
--- a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "Конечная точка API не обнаружена"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Элементы должны быть представлены в виде списка"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Предоставлен недопустимый список элементов"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Все фильтры будут использоваться с параметром True"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Нет элементов, соответствующих заданным критериям"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Данные не предоставлены"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Поле должно быть уникальным."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "У пользователя недостаточно прав для просмотра этой модели!"
@@ -65,11 +65,11 @@ msgstr "Подтверждение адреса электронной почт
msgid "You must type the same email each time."
msgstr "Вы должны вводить один и тот же адрес электронной почты."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Указанный основной адрес электронной почты неверен."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Указанный домен электронной почты не утверждён."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Невозможно преобразовать {original} в {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
@@ -105,22 +105,22 @@ msgstr "Введите дату"
msgid "Invalid decimal value"
msgstr "Не верное десятичное значение"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Заметки"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Значение '{name}' отсутствует в формате шаблона"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Предоставленное значение не соответствует требуемому формату: "
@@ -164,51 +164,51 @@ msgstr "Удалить HTML теги из этого значения"
msgid "Data contains prohibited markdown content"
msgstr "Данные содержат недопустимую разметку"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Ошибка соединения"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Сервер ответил неверным кодом статуса"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Произошло исключение"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Сервер ответил неверным значением Контент-Длина"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Изображение слишком большое"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Загрузка изображения превышен максимальный размер"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Удаленный сервер вернул пустой ответ"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Предоставленный URL не является допустимым файлом изображения"
@@ -220,117 +220,121 @@ msgstr "Войти в приложение"
msgid "Email"
msgstr "Электронная почта"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Вы должны включить двухфакторную аутентификацию, прежде чем делать что-нибудь еще."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Ошибка запуска проверки плагина"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Метаданные должны быть объектом python dict"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Метаданные плагина"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Поле метаданных JSON для использования внешними плагинами"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Неправильно отформатированный шаблон"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Указан неизвестный ключ формата"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Отсутствует требуемый ключ формата"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Ссылочный идентификатор не может быть пустым"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Ссылка должна соответствовать шаблону {pattern}"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Номер ссылки слишком большой"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Неверный выбор"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Название"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Описание"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Описание (необязательно)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Путь"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Повторяющиеся имена не могут существовать под одним и тем же родителем"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Записи о скидке (необязательно)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Данные штрихкода"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Данные стороннего штрих-кода"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Хэш штрих-кода"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Уникальный хэш данных штрих-кода"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Обнаружен существующий штрих-код"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Ошибка сервера"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Сервер зарегистрировал ошибку."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Должно быть действительным номером"
msgid "Currency"
msgstr "Валюта"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Выберите валюту из доступных вариантов"
@@ -521,11 +525,11 @@ msgstr "Китайский (Упрощенный)"
msgid "Chinese (Traditional)"
msgstr "Китайский (Традиционный)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Доступно обновление"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "Доступно обновление для InvenTree"
@@ -537,7 +541,7 @@ msgstr "Неверная физическая единица"
msgid "Not a valid currency code"
msgstr "Неверный код валюты"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Статус заказа"
@@ -546,23 +550,23 @@ msgstr "Статус заказа"
msgid "Parent Build"
msgstr "Родительский заказ на производство"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Включая варианты"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Включая варианты"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Включая варианты"
msgid "Part"
msgstr "Деталь"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Категория"
@@ -593,7 +597,7 @@ msgstr "Категория"
msgid "Ancestor Build"
msgstr "Родительская сборка"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Назначено мне"
@@ -601,11 +605,11 @@ msgstr "Назначено мне"
msgid "Assigned To"
msgstr "Назначено"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Создано до"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Создано после"
@@ -641,99 +645,99 @@ msgstr "Завершено до"
msgid "Completed after"
msgstr "Завершено после"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "Минимальная дата"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Максимальная дата"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Исключить дерево"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Заказ на производство должен быть отменен перед удалением"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Расходник"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Необязательно"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Сборная деталь"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Отслеживается"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Тестируемая"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Невыполненные заказы"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Зарезервировано"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Потреблено"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Доступно"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "В заказе"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Заказ на производство"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Расположение"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Выход"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Фильтрация по идентификатору исходящей складской позиции. Используйте 'null', чтобы найти несмонтированные элементы сборки."
@@ -773,9 +777,9 @@ msgstr "Целевая дата должна быть после даты нач
msgid "Build Order Reference"
msgstr "Ссылка на заказ на производство"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Ссылка на заказ"
msgid "Sales Order to which this build is allocated"
msgstr "Заказ на продажу, которому принадлежит этот заказ на производство"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Место хранения комплектующих"
@@ -821,7 +825,7 @@ msgstr "Сторонняя сборка"
msgid "This build order is fulfilled externally"
msgstr "Этот заказ на сборку выполнен сторонней компанией"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Место хранения результата"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Код статуса заказа на производство"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Код партии"
@@ -883,8 +887,8 @@ msgstr "Целевая дата завершения"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Целевая дата для заказа на производства. Заказ будет просрочен после этой даты."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Дата завершения"
@@ -900,7 +904,7 @@ msgstr "Создано"
msgid "User who issued this build order"
msgstr "Пользователь, создавший этот заказ на производство"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Приоритет этого заказа на производство"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Код проекта"
@@ -962,9 +966,9 @@ msgstr "Продукция не совпадает с заказом на про
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Количество должно быть больше нуля"
@@ -999,7 +1003,7 @@ msgstr "Объект производства"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Количество должно быть 1 для сериализов
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Резервируемое количество ({q}) не должно превышать доступное количество на складе ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Складская позиция перераспределена"
@@ -1057,8 +1061,8 @@ msgstr "Складская позиция перераспределена"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Складская позиция"
@@ -1082,7 +1086,7 @@ msgstr "Целевая складская позиция"
msgid "Build Level"
msgstr "Уровень сборки"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Наименование детали"
@@ -1139,7 +1143,7 @@ msgstr "Автоматически выделить серийные номер
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Автоматически зарезервировать необходимые элементы с соответствующими серийными номерами"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Следующие серийные номера уже существуют или недействительны"
@@ -1272,7 +1276,7 @@ msgstr "Позиция для производства"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part должна указывать на ту же часть, что и заказ на производство"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Элемент должен быть в наличии"
@@ -1385,8 +1389,8 @@ msgstr "Установить в"
msgid "Build"
msgstr "Сборка"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Деталь поставщика"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Есть варианты"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Позиция BOM"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "В производстве"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "Запланировано к сборке"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Внешний склад"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Доступный запас"
@@ -1527,31 +1531,31 @@ msgstr "Просроченный заказ сборки"
msgid "Build order {bo} is now overdue"
msgstr "Заказ на производство {bo} просрочен"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "Ссылка"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "Файл"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "У пользователя нет прав для удаления этих вложений"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "У пользователя нет прав на удаление этого вложения"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Список выбора заблокирован"
@@ -1571,8 +1575,8 @@ msgstr "Не указаны действительные коды валют"
msgid "No plugin"
msgstr "Нет плагина"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "Строка ключа должна быть уникальной"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Пользователь"
@@ -1654,8 +1658,8 @@ msgstr "Пользователь"
msgid "Price break quantity"
msgstr "Скидка распространяется на заданное количество"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Цена"
@@ -1677,8 +1681,8 @@ msgstr "Имя для этого веб-хука"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Активный"
@@ -1686,7 +1690,7 @@ msgstr "Активный"
msgid "Is this webhook active"
msgstr "Этот веб-хук активен?"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Токен"
@@ -1756,7 +1760,7 @@ msgstr "Заголовок"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Определение"
msgid "Unit definition"
msgstr "Определение единицы измерения"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Вложения"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "Логическое состояние, соответствующее пользовательскому состоянию в бизнес-логике"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Значение"
@@ -2172,7 +2176,7 @@ msgstr "Возможные варианты этого параметра (ра
msgid "Selection list for this parameter"
msgstr "Список выбора для этого параметра"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Включено"
@@ -2204,8 +2208,8 @@ msgstr "ID модели"
msgid "ID of the target model for this parameter"
msgstr "ID целевой модели для этого параметра"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Шаблон"
@@ -2262,7 +2266,7 @@ msgstr "Дата и время сканирования штрих-кода"
msgid "URL endpoint which processed the barcode"
msgstr "URL-адрес, обработавший штрихкод"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Контекст"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Данные ответа от сканирования штрихкода"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Результат"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "Цепочки электронной почты"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Ключ"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} отменен"
msgid "A order that is assigned to you was canceled"
msgstr "Заказ, назначенный вам, был отменён"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Полученные элементы"
@@ -2524,7 +2528,7 @@ msgstr "Имя файла"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Тип модели"
@@ -2669,8 +2673,8 @@ msgstr "Как часто обновлять курс валют (установ
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "дней"
@@ -2914,8 +2918,8 @@ msgstr "По умолчанию детали являются шаблонами
msgid "Parts can be assembled from other components by default"
msgstr "По умолчанию детали могут быть собраны из других компонентов"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Компонент"
@@ -2931,7 +2935,7 @@ msgstr "Можно купить"
msgid "Parts are purchaseable by default"
msgstr "По умолчанию детали являются отслеживаемыми"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Можно продавать"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Журнал ошибок, которые возникают при создании отчетов"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Размер страницы"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Разрешить перемещение товаров, которых нет на складе, между складами"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Паттерн ссылки заказа на производство"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Поле требуемого паттерна для создания ссылки заказа на производство"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Требуется ответственный владелец"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Ответственный владелец должен быть назначен для каждого заказа"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Требовать активную деталь"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Запрещать создание заказов на сборку для неактивных деталей"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Требовать заблокированную деталь"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Запрещать создание заказов на сборку для разблокированных деталей"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "Требовать валидную спецификацию"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Запрещать создание заказов на сборку, пока спецификация не будет подтверждена"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "Требовать закрытия дочерних заказов"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Запрещать завершение заказа на сборку, пока не закрыты все дочерние заказы"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "Сторонний заказ на сборку"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "Включить функциональность сторонних заказов на сборку"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Блокировать до прохождения тестов"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Запретить вывод сборки до тех пор, пока не пройдут все необходимые тесты"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Включить заказы на возврат"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Включите функцию заказа на возврат в пользовательском интерфейсе"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Шаблон заказа на возврат товара"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Необходимый шаблон для создания поля «Возврат заказа»"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Редактировать завершенные возвратные заказы"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Разрешить редактирование возвращенных заказов после их завершения"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Шаблон заказа на возврат товара"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Необходимый шаблон для создания поля «Возврат заказа»"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Отгрузка по умолчанию для заказа на продажу"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Включить создание отгрузки по умолчанию для заказов на продажу"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Редактирование завершённых заказов на продажу"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Разрешить редактирование заказов на продажу после их отправки или завершения"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "Отгрузка требует проверки"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "Запрещать завершение отгрузок, пока товары не проверены"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Отмечать отправленные заказы как завершённые"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Заказы на продажу, помеченные как отгруженные, будут автоматически завершены, минуя статус 'отгружено'"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Шаблон ссылки заказа на закупку"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Требуемый шаблон для генерации поля ссылки заказа на закупку"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Редактировать завершённые заказы на закупку"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Разрешить редактирование заказов после их отправки или завершения"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Конвертировать валюту"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "Преобразовывать стоимость товара в базовую валюту при поступлении на склад"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Автоматически выполнять заказы на закупку"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Автоматически отмечать заказы на закупку как завершённые при получении всех позиций"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Включить функцию восстановления пароля"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Включить функцию восстановления пароля на странице входа"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Разрешить регистрацию"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Включить самостоятельную регистрацию пользователей на странице входа"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Включить SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Включить SSO на странице входа"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Включить регистрацию через SSO"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Включить самостоятельную регистрацию пользователей через SSO на странице входа"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "Включить синхронизацию групп через SSO"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Включить синхронизацию групп InvenTree с группами, предоставляемыми IdP"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "Ключ группы SSO"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "Имя атрибута группы, предоставленного провайдером идентификации"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "Отображение групп SSO"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "Отображение от групп SSO к локальным группам InvenTree. Если локальная группа не существует, она будет создана."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Удалять группы вне SSO"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "Удалять ли группы, назначенные пользователю, если они не поддерживаются провайдером идентификации. Отключение этой настройки может привести к проблемам безопасности"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Необходимо указать EMail"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Требовать электронную почту при регистрации"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Автозаполнение пользователей SSO"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Автоматически заполнять данные пользователя из аккаунта SSO"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Написать дважды"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "При регистрации дважды спрашивать адрес электронной почты"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Пароль дважды"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "При регистрации запросить пароль у пользователей дважды"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Разрешенные домены"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Ограничить регистрацию определёнными доменами (через запятую, начиная с @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Группа при новой регистрации"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Группа, на которую назначаются новые пользователи при регистрации. Если включена синхронизация группы SSO, эта группа задается только в том случае, если ни одна группа не может быть назначена через IdP."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Принудительное MFA"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Пользователи должны использовать многофакторную безопасность."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr "Включение этой настройки потребует от всех пользователей настройки многофакторной аутентификации. Все сессии будут отключены немедленно."
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Проверять плагины при запуске"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Проверять, что все плагины установлены при запуске — включать в контейнерных средах"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Проверка обновлений плагинов"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Включить периодическую проверку обновлений установленных плагинов"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Включить интеграцию URL"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Разрешить плагинам добавлять маршруты URL"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Включить интеграцию навигации"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Разрешить плагинам интегрироваться в навигацию"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Включить интеграцию приложений"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Разрешить плагинам добавлять приложения"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Включить интеграцию расписаний"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Разрешить плагинам запускать запланированные задачи"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Включить интеграцию событий"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Разрешить плагинам реагировать на внутренние события"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Включить интеграцию интерфейса"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Разрешить плагинам интегрироваться в пользовательский интерфейс"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "Включить интеграцию почты"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "Разрешить плагинам обрабатывать исходящую и входящую почту"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "Включить коды проекта"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Включить коды проекта для отслеживания проектов"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr "Включить инвентаризацию"
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "Включить функцию записи истории уровней и стоимости запасов"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Исключить сторонний склад"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Исключить из инвентаризации единицы хранения на внешних складах"
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Автоматический период инвентаризации"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr "Кол-во дней между автоматических записей инвентаризации"
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr "Удалять устаревшие записи инвентаризаций"
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr "Удалять записи инвентаризаций старше N дней"
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr "Частота удаления записей инвентаризаций"
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr "Записи инвентаризации будут удалены после N дней"
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr "Удалять старые записи истории запасов"
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr "Удалять записи истории запасов старше указанного количества дней"
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr "Интервал удаления истории запасов"
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr "Записи истории запасов будут удалены через указанное количество дней"
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Показывать полные имена пользователей"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Отображать полные имена пользователей вместо логинов"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "Отображать профили пользователей"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "Отображать профили пользователей на их странице профиля"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Добавлять данные об испытательном оборудовании"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Добавлять данные об испытательном оборудовании в результаты тестирования"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "Включить пинг машин"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "Включить периодическую задачу пинга зарегистрированных машин для проверки их статуса"
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "Все модели"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "Не указан тип модели вложения"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Недопустимый тип модели вложения"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "Минимальное количество знаков не может быть больше максимального"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "Максимальное количество знаков не может быть меньше минимального"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Пустой домен не допускается."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Недопустимое доменное имя: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "Значение должно быть в верхнем регистре"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "Значение должно быть допустимым идентификатором переменной"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "Поставщик активен"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Производитель"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Компания"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Электронная почта контакта"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Контакт"
@@ -4297,7 +4309,7 @@ msgstr "Налоговый идентификатор"
msgid "Company Tax ID"
msgstr "Налоговый идентификатор компании"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Адрес"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Ссылка на адресную информацию (внешняя)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Производитель детали"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Выберите производителя"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "Артикул производителя"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Связанная деталь производителя должна ссылаться на ту же базовую деталь"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Поставщик"
@@ -4448,7 +4460,7 @@ msgstr "Поставщик"
msgid "Select supplier"
msgstr "Выберите поставщика"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Артикул поставщика"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Минимальная плата (например, складская)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Упаковка"
@@ -4533,7 +4545,7 @@ msgstr "Валюта по умолчанию для этого поставщи
msgid "Company Name"
msgstr "Название компании"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "На складе"
@@ -4722,7 +4734,7 @@ msgstr "Исходные данные строки"
msgid "Errors"
msgstr "Ошибки"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Корректный"
@@ -4838,7 +4850,7 @@ msgstr "Количество копий для печати каждой эти
msgid "Connected"
msgstr "Подключен"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Неизвестно"
@@ -4942,7 +4954,7 @@ msgstr "Ключ свойства"
msgid "Value of the property"
msgstr "Значение свойства"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Группа"
@@ -4966,118 +4978,118 @@ msgstr "Максимальный прогресс"
msgid "Maximum value for progress type, required if type=progress"
msgstr "Максимальное значение для типа прогресса, требуется, если тип=progress"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Ссылка на заказ"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Невыполненный"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Есть код проекта"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Создал"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Создано до"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Создано после"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "Есть дата начала"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "Дата начала до"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "Дата начала после"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "Есть целевая дата"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Целевая дата до"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Целевая дата после"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Имеет цену"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Завершено до"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Завершено после"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "Сторонний заказ на сборку"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Заказ"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Заказ выполнен"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Внутренняя деталь"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Заказ в ожидании"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Завершённые"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Есть отгрузка"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Заказ на закупку"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Заказ на закупку"
msgid "Sales Order"
msgstr "Заказ на продажу"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Заказ на возврат"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr "Адрес не соответствует выбранной компа
msgid "Order description (optional)"
msgstr "Описание заказа (дополнительно)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Выберите код проекта для этого заказа"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Ссылка на внешнюю страницу"
@@ -5151,7 +5163,7 @@ msgstr "Начальная дата"
msgid "Scheduled start date for this order"
msgstr "Запланированная начальная дата этого заказа"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Целевая дата"
@@ -5184,487 +5196,487 @@ msgstr "Контактное лицо по данному заказу"
msgid "Company address for this order"
msgstr "Адрес компании по этому заказу"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Ссылка на заказ"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Статус"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Статус заказа на закупку"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Компания, в которой детали заказываются"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Номер у поставщика"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Номер заказа у поставщика"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "получил"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Дата завершения заказа"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Место хранения"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Место хранения для полученных позиций"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Поставщик детали должен совпадать с поставщиком заказа на закупку"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Позиция не соответствует заказу на закупку"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "В позиции отсутствует связанная деталь"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Количество должно быть положительным числом"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Покупатель"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Компания, которой детали продаются"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Статус заказа на продажу"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Ссылка клиента"
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Код ссылки на заказ клиента"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Дата отгрузки"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "Отправлено"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "Заказ уже выполнен"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "Заказ уже отменен"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Только открытый заказ может быть отмечен как завершённый"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Заказ не может быть завершён, так как есть незавершённые отгрузки"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "Заказ не может быть завершён, так как есть незавершённые распределения"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Заказ не может быть завершён, так как есть незавершённые позиции"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "Заказ заблокирован и не может быть изменён"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Количество"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Номер позиции"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Записи о позиции"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Целевая дата этой позиции (оставьте пустой, чтобы использовать целевую дату заказа)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Описание позиции (необязательно)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Дополнительный контекст для этой строки"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Цена за единицу"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "Позиция заказа на закупку"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "Поставляемая деталь должна соответствовать поставщику"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "Заказ на сборку должен быть отмечен как внешний"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "Заказы на сборку могут быть связаны только со сборочными деталями"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "Деталь заказа на сборку должна соответствовать детали позиции"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Деталь поставщика"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Получено"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Количество полученных предметов"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Закупочная цена"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Закупочная цена"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "Внешний заказ на сборку, который будет выполнен этой позицией"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "Дополнительная позиция заказа на закупку"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "Позиция заказа на продажу"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Только продаваемые детали могут быть назначены заказу на продажу"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Цена продажи"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Цена последней продажи"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Доставлен"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Отгруженное кол-во"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "Отгрузка заказа на продажу"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "Адрес отгрузки должен соответствовать клиенту"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "Адрес доставки для этой отгрузки"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Дата отправления"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Дата доставки"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Дата доставки отгрузки"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Проверн"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Пользователь, проверивший эту отгрузку"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Отправление"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Номер отправления"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Номер отслеживания"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Информация об отслеживании доставки"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Номер счета"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Номер ссылки на связанную накладную"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Отгрузка уже отправлена"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Отправка не имеет зарезервированных складских позиций"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "Отгрузка должна быть проверена, прежде чем её можно завершить"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "Дополнительная позиция заказа на продажу"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "Распределение заказа на продажу"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "Складская позиция не была назначена"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Невозможно зарезервировать складскую позицию в позицию другой детали"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Невозможно распределить запас к позиции без детали"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Количество распределения не может превышать количество на складе"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Резервируемое количество должно быть больше нуля"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Количество должно быть 1 для сериализированных складских позиций"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Заказ на продажу не соответствует отгрузке"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Отгрузка не соответствует заказу на продажу"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Строка"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Ссылка на отгрузку заказа на продажу"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Элемент"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Выберите складскую позицию для резервирования"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Укажите резервируемое количество"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Ссылка на заказ на возврат"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Компания, из которой возвращаются товары"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Статус заказа на возврат"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "Позиция заказа на возврат"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "Необходимо указать складской элемент"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "Количество возврата превышает количество на складе"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "Количество возврата должно быть больше нуля"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Недопустимое количество для серийного складского элемента"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Выберите позицию, возвращаемую от клиента"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Дата получения"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr "Дата возврата"
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Результат"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Результат для этой позиции"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Стоимость, связанная с возвратом или ремонтом этой позиции"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "Дополнительная позиция заказа на возврат"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr "Копировать дополнительные позиции"
msgid "Copy extra line items from the original order"
msgstr "Копировать дополнительные позиции из исходного заказа"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Скопировать параметры"
@@ -5784,11 +5796,11 @@ msgstr "Объединять элементы"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Объединять в одну позицию элементы, у которых одинаковая деталь, место хранения и целевая дата"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "Артикул"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Внутренний артикул детали"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Введите код партии для поступающих складских позиций"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Истекает"
@@ -6056,123 +6068,131 @@ msgstr "Просроченный заказ на возврат"
msgid "Return order {ro} is now overdue"
msgstr "Заказ на возврат {ro} просрочен"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Помечено звёздочкой"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Фильтровать по отмеченным категориям"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Глубина"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Фильтровать по глубине категории"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Верхний уровень"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Фильтровать по категориям верхнего уровня"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Каскад"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Включать подкатегории в отфильтрованные результаты"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Родитель"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Фильтровать по родительской категории"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Исключить подкатегории указанной категории"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Есть результаты"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "Является вариантом"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "Является ревизией"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "Есть ревизии"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "Спецификация валидна"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "Каскадные категории"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "Если включено, включать элементы в дочерних категориях указанной категории"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Фильтровать по числовому идентификатору категории или литералу 'null'"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr "Сборочная деталь активна"
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr "Отслеживаемая сборочная деталь"
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "Сборная деталь тестируется"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr "Деталь компонента активна"
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr "Отслеживаемая деталь компонента"
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "Компонент тестируется"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr "Сборочная деталь компонента"
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr "Виртуальная деталь компонента"
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr "На складе"
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Использования"
@@ -6213,7 +6233,7 @@ msgstr "Ключевые слова по умолчанию для детале
msgid "Icon"
msgstr "Значок"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Значок (необязательно)"
@@ -6349,7 +6369,7 @@ msgstr "Ключевые слова для улучшения видимости
msgid "Part category"
msgstr "Категория"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "Внутренний артикул"
@@ -6358,7 +6378,7 @@ msgstr "Внутренний артикул"
msgid "Part revision or version number"
msgstr "Ревизия или серийный номер детали"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Ревизия"
@@ -6382,7 +6402,7 @@ msgstr "Срок действия по умолчанию"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Срок годности (в днях) для складских позиций этой детали"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Минимальный запас"
@@ -6390,7 +6410,7 @@ msgstr "Минимальный запас"
msgid "Minimum allowed stock level"
msgstr "Минимально допустимый складской запас"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Общий доступный запас на момент инвентаризации"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Дата"
@@ -6759,7 +6779,7 @@ msgstr "Суб-деталь"
msgid "Select part to be used in BOM"
msgstr "Выбрать деталь для использования в BOM"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr "Родительская категория"
msgid "Parent part category"
msgstr "Родительская категория деталей"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Подкатегории"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Результаты"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Количество результатов, зарегистрированных по этому шаблону"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Валюта закупки складской позиции"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "Файл не является изображением"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Оригинальная деталь"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Выберите исходную деталь для копирования"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Копировать Изображение"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Копировать изображение из исходной детали"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Скопировать BOM"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Копировать спецификацию из исходной детали"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Копировать данные параметров из исходной детали"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Копировать Записи"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Скопировать записи из оригинальной детали"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "Копировать тесты"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "Копировать шаблоны тестов из исходной детали"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Начальное количество на складе"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Задайте начальное количество этой детали на складе. Если количество равно 0, складская позиция не будет добавлена."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Начальное местоположение запаса"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Укажите начальное местоположение запаса для этой детали"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Выберите поставщика (или оставьте поле пустым, чтобы пропустить)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Артикул производителя"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "Выбранная компания не является допустимым поставщиком"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "Выбранная компания не является допустимым производителем"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Деталь производителя с данным артикулом уже существует"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Деталь поставщика с данным артикулом уже существует"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Название категории"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Производится"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "Количество этой детали, находящееся в производстве"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Оставшееся количество этой детали, запланированное к сборке"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Складские позиции"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Ревизии"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Общий запас"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Нераспределённый запас"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Запас вариантов"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Дублировать деталь"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Копировать начальные данные из другой детали"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Начальный запас"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Создавать деталь с начальным количеством на складе"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Информация о поставщике"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Добавить начальную информацию о поставщике для этой детали"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Копировать параметры категории"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Копировать шаблоны параметров из выбранной категории деталей"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Существующее изображение"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Имя файла существующего изображения детали"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Файл изображения не существует"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Проверить всю спецификацию"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Можно произвести"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "Требуется для заказов на сборку"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "Выделено для заказов на сборку"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "Требуется для заказов на продажу"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "Выделено для заказов на продажу"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr "Внутренний артикул детали"
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr "Описание детали"
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "Выберите деталь (и любые её варианты) для которой сгенерировать информацию об инвентаризации"
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "Выберите категорию (и любые её подкатегории) для которой сгенерировать информацию об инвентаризации"
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "Выберите склад, чтобы включить все детали в наличии в указанном складе (включая подразделы)"
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr "Создать записи инвентаризации"
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr "Сохранить записи инвентаризации для выбранных деталей"
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr "Создать отчет"
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr "Создать отчёт инвентаризации для выбранных деталей"
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Минимальная цена"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Переопределить рассчитанное значение минимальной цены"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Валюта минимальной цены"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Максимальная цена"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Переопределить рассчитанное значение максимальной цены"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Валюта максимальной цены"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Обновить"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Обновить цены для этой детали"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Не удалось конвертировать из предоставленных валют в {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Минимальная цена не должна превышать максимальную цену"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Максимальная цена не должна быть меньше минимальной"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "Выберите родительскую сборку"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "Выберите деталь, которая является компонентом"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Выберите деталь, из которой копировать спецификацию"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Удалить существующие данные"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Удалить существующие пункты спецификации перед копированием"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Включая наследуемые"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Включать пункты спецификации, унаследованные от шаблонных деталей"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Пропустить некорректные строки"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Включите эту опцию, чтобы пропускать недопустимые строки"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Копировать детали-заменители"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Копировать детали-заменители при дублировании пунктов спецификации"
@@ -7326,91 +7346,91 @@ msgstr "Действие не указано"
msgid "No matching action found"
msgstr "Соответствующее действие не найдено"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Не найдено совпадений для данных штрих-кода"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Найдено совпадение по штрих-коду"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "Модель не поддерживается"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "Экземпляр модели не найден"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Штрихкод соответствует существующему элементу"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Не найдено соответствующих данных детали"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Не найдено соответствующих поставляемых деталей"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Найдено несколько соответствующих поставляемых деталей"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "Плагин, соответствующий данным штрихкода, не найден"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Соответствующая поставляемая деталь"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Предмет уже был получен"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "Нет совпадения плагина для штрихкода поставщика"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Найдено несколько соответствующих позиций"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Не найдено соответствующей позиции"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Заказ на продажу не указан"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Штрих-код не соответствует существующим складским позициям"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Складская позиция не соответствует позиции"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Недостаточно запаса"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Складская позиция зарезервирована заказом на продажу"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Недостаточно информации"
@@ -7992,7 +8012,7 @@ msgstr "Граница"
msgid "Print a border around each label"
msgstr "Печатать рамку вокруг каждой этикетки"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Альбомная"
@@ -8072,77 +8092,77 @@ msgstr "Предоставляет поддержку сканирования
msgid "The Supplier which acts as 'TME'"
msgstr "Поставщик, который представляет 'TME'"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "Установка плагинов отключена"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Плагин успешно установлен"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Плагин установлен в {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "Плагин не найден в реестре"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "Плагин не является упакованным"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "Имя пакета плагина не найдено"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "Только пользователи с правами персонала могут управлять плагинами"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "Удаление плагинов отключено"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Плагин нельзя удалить, так как он активен"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr "Плагин нельзя удалить, так как он обязательный"
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr "Плагин нельзя удалить, так как он является образцом"
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr "Плагин нельзя удалить, так как он встроенный"
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "Плагин не установлен"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "Установка плагина не найдена"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "Плагин успешно удалён"
@@ -8194,21 +8214,21 @@ msgstr "Пакетный плагин"
msgid "Plugin"
msgstr "Плагин"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Автор не найден"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Плагин '{p}' несовместим с текущей версией InvenTree {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Плагин требует как минимум версию {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Плагин требует не более версии {v}"
@@ -8481,136 +8501,136 @@ msgstr "Правовая информация"
msgid "Letter"
msgstr "Письмо"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "Файл шаблона с таким именем уже существует"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Название шаблона"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Описание шаблона"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "Номер ревизии (автоматически)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Прикреплять к модели при печати"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Сохранять отчёт как вложение к связанному экземпляру модели при печати"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Шаблон имени файла"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "Шаблон для создания имён файлов"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "Шаблон включён"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "Тип модели шаблона"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Фильтры"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "Фильтры запроса шаблона (список ключ=значение через запятую)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Файл шаблона"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Размер страницы для PDF-отчётов"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Рендерить отчёт в альбомной ориентации"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "Объединить"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr "Рендерить один отчёт по выбранным элементам"
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "Отчёт, сгенерированный из шаблона {self.name}"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr "Синтаксическая ошибка в шаблоне"
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr "Ошибка при рендеринге отчёта"
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "Ошибка при генерации отчёта"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr "Ошибка при объединении выводов отчётов"
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Ширина [мм]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Ширина этикетки, задаётся в миллиметрах"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Высота [мм]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Высота этикетки, задаётся в миллиметрах"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "Ошибка при печати этикеток"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Сниппет"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Файл фрагмента отчёта"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Описание файла сниппета"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Объект"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Файл ресурса отчёта"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Описание медиафайла"
@@ -8766,200 +8786,200 @@ msgstr "Нет результата"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Файл изображения не найден"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "Тег part_image требует экземпляр детали"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "Тег company_image требует экземпляр компании"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "Фильтровать по глубине местоположения"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "Фильтровать по местоположениям верхнего уровня"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "Включать подместоположения в отфильтрованные результаты"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Основной склад"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Фильтровать по родительскому местоположению"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Название детали (без учёта регистра)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "Название детали содержит (без учёта регистра)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Название детали (regex)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "IPN детали (без учёта регистра)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "IPN детали содержит (без учёта регистра)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "IPN детали (regex)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Минимальный запас"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Максимальный запас"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Код статуса"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Внешнее местоположение"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "Израсходовано для заказов на сборку"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "Установлено в другом складе"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Древо Деталей"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Обновлено до"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Обновлено после"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Инвентаризация до"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Инвентаризация после"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Дата истечения до"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Дата истечения после"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Залежалый"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr "Укажите первичный ключ складского элемента, чтобы исключить этот элемент и всех его потомков"
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr "Каскад местоположений"
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr "Если включено, включать элементы в дочерних местоположениях данного местоположения"
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr "Фильтровать по числовому идентификатору местоположения или литералу 'null'"
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Необходимо указать количество"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Необходимо предоставить действительную деталь"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "Указанная поставляемая деталь не существует"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "У поставляемой детали определён размер упаковки, но флаг use_pack_size не установлен"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Не нужно указывать серийные номера для неотслеживаемых деталей"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr "Включать установленные"
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr "Если включено, включать результаты тестов для предметов, установленных под данным складским элементом"
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr "Фильтровать по числовому идентификатору складского элемента"
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr "Складской элемент с ID {id} не существует"
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr "Включая варианты деталей"
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr "После"
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr "До"
@@ -8995,7 +9015,7 @@ msgstr "Выберите владельца"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Складские позиции не могут находиться в структурных местах хранения, но могут находиться в дочерних местах хранения."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Внешний"
@@ -9101,7 +9121,7 @@ msgstr "Выберите соответствующего поставщика
msgid "Where is this stock item located?"
msgstr "Где находится эта складская позиция?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Упаковка этой складской позиции хранится в"
@@ -9117,7 +9137,7 @@ msgstr "Установлен ли этот элемент в другой эле
msgid "Serial number for this item"
msgstr "Серийный номер для этого элемента"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Код партии для этой складской позиции"
@@ -9206,7 +9226,7 @@ msgstr "Количество не соответствует серийным н
msgid "Cannot assign stock to structural location"
msgstr "Нельзя назначить запас в структурное местоположение"
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "Шаблон теста не существует"
@@ -9226,7 +9246,7 @@ msgstr "Складская позиция содержит другие дета
msgid "Stock item has been assigned to a customer"
msgstr "Складская позиция была назначена покупателю"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Складская позиция в производстве"
@@ -9234,7 +9254,7 @@ msgstr "Складская позиция в производстве"
msgid "Serialized stock cannot be merged"
msgstr "Серийные запасы нельзя объединить"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Дублирующие складские элементы"
@@ -9250,71 +9270,71 @@ msgstr "Складские позиции должны ссылаться на
msgid "Stock status codes must match"
msgstr "Коды статуса запаса должны совпадать"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Складской элемент нельзя переместить, так как он отсутствует на складе"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "Отслеживание складского элемента"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Заметки к записи"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "Результат теста складского элемента"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Для этого теста должно быть указано значение"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Для этого теста требуется загрузить вложения"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "Недопустимое значение для этого теста"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Результат тестирования"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Результат выполнения теста"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Вложение с результатом теста"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Заметки о тестировании"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "Испытательное оборудование"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "Идентификатор испытательного оборудования, на котором выполнялось тестирование"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Запущен"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "Время начала тестирования"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Завершён"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "Время окончания тестирования"
@@ -9398,7 +9418,7 @@ msgstr "Введите серийные номера для новых элем
msgid "Supplier Part Number"
msgstr "Номер детали поставщика"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Просрочен"
@@ -9428,8 +9448,8 @@ msgstr "Складской элемент не предоставлен"
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Количество не должно превышать доступный запас ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Целевое место хранения"
@@ -9501,127 +9521,131 @@ msgstr "Выберите складские позиции для изменен
msgid "No stock items selected"
msgstr "Не выбрано ни одной складской позиции"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Места хранения"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "Родительское местоположение запаса"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Деталь должна быть продаваемой"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "Элемент распределён в заказ на продажу"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Элемент зарезервирован для заказа на производство"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Покупатель для назначения складских позиций"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "Выбранная компания не является покупателем"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Записи о назначенных запасах"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Необходимо предоставить список складских позиций"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Заметки об объединении складских позиций"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Разрешить несоответствие поставщиков"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Разрешить объединение складских позиций с различными поставщиками"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Разрешить несоответствие статусов"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Разрешить объединение складских позиций с различными статусами"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Необходимо предоставить как минимум 2 складские позиции"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Нет изменений"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Первичный ключ складского элемента"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "Складской элемент отсутствует на складе"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr "Складской элемент уже на складе"
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr "Количество не должно быть отрицательным"
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Заметки об изменении склада"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr "Объединить с существующим запасом"
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Заметки об изменении склада"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr "Объединять возвращённые элементы с существующими складскими элементами, если возможно"
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "Следующий серийный номер"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "Предыдущий серийный номер"
@@ -9919,7 +9943,7 @@ msgstr "Права доступа"
msgid "Important dates"
msgstr "Важные даты"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Токен был отозван"
@@ -9927,163 +9951,163 @@ msgstr "Токен был отозван"
msgid "Token has expired"
msgstr "Срок действия токена истёк"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API токен"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "Токены API"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Название токена"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Название пользовательского токена"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Дата истечения срока действия токена"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Последнее Посещение"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Последнее время использования токена"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Отозван"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Права доступа"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Вид"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Разрешение на просмотр элементов"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Добавить"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Разрешение на добавление элементов"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Изменить"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Разрешение на редактирование элементов"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Удалить"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Разрешение на удаление элементов"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "Бот"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "Внутренний"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Гость"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Язык"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "Предпочтительный язык пользователя"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "Тема"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "Настройки веб-интерфейса в формате JSON — не редактировать вручную!"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "Виджеты"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "Настройки виджетов панели в формате JSON — не редактировать вручную!"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Отображаемое имя"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "Отображаемое имя пользователя"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "Положение"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "Основное место работы или должность"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "Статусное сообщение пользователя"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "Информация о местоположении пользователя"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "Пользователь активно использует систему"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "Предпочтительная контактная информация пользователя"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "Тип пользователя"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "Какого типа этот пользователь?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "Организация"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "Основная организация/принадлежность пользователя"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "Основная группа"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "Основная группа для пользователя"
diff --git a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po
index 19050310a4..262b746f3f 100644
--- a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Language: sk_SK\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr ""
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr ""
@@ -65,11 +65,11 @@ msgstr ""
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr ""
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr ""
@@ -105,22 +105,22 @@ msgstr ""
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr ""
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -164,51 +164,51 @@ msgstr ""
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr ""
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr ""
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr ""
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr ""
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr ""
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr ""
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr ""
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr ""
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr ""
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr ""
@@ -521,11 +525,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr ""
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr ""
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr ""
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr ""
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr ""
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -883,8 +887,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr ""
@@ -900,7 +904,7 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr ""
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr ""
@@ -1654,8 +1658,8 @@ msgstr ""
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr ""
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1686,7 +1690,7 @@ msgstr ""
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr ""
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr ""
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr ""
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr ""
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po
index 6e7a401493..f4d70ec09f 100644
--- a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Language: sl_SI\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API vmesnik ni najden"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Uporabnik nima dovoljenja pogleda tega modela"
@@ -65,11 +65,11 @@ msgstr "Potrdite e-pošto"
msgid "You must type the same email each time."
msgstr "E-pošti se morata ujemati"
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Podana epošta ni veljavna."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Domena epošte ni podprta."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Ni mogoče pretvoriti {original} v {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Podana napačna količina"
@@ -105,22 +105,22 @@ msgstr "Vnesi datum"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Zapiski"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Vrednost '{name}' ni v predpisanem formatu"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Podana vrednost se ujema s predpisanim vzorcem: "
@@ -164,51 +164,51 @@ msgstr "Odstranite oznako HTML iz te vrednosti"
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Napaka povezave"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Odziv serverja: napravilni status kode"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Pojavila se je izjema"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Odziv serverja: napačna dolžina vrednosti"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Prevelika velikost slike"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Prenos slike presegel največjo velikost"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Oddaljeni server vrnil prazen odziv"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Podani URL ni veljavna slikovna datoteka"
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr "E-pošta"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Napaka pri izvajanju preverjanja vtičnika"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metapodatki morajo biti objekt tipa python dict"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Metapodatki vtičnika"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Polje metapodatkov JSON za uporabo pri zunanjih vtičnikih"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Nepravilno nastavljen vzorec"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Nastavljen neprepoznan ključ formata"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Manjka obvezen ključ formata"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Referenčno polje ne sme biti prazno"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Referenca se mora ujemati s vzorcem"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Referenčna številka prevelika"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Nedovoljena izbira"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Ime"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Opis"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Opis (opcijsko)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Pot"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Podvojena imena ne morejo obstajati pod istim nadrejenim elementom"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Markdown opombe (neobvezno)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Podatki čtrne kode"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Podatki črtne kode tretje osebe"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Oznaka črtne kode"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Enolična oznaka podatkov črtne kode"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Črtna koda že obstaja"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Napaka strežnika"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Zaznana napaka na strežniku."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Mora biti veljavna številka"
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Izberite valuto med razpoložljivimi možnostmi"
@@ -521,11 +525,11 @@ msgstr "Kitajščina (poenostavljena)"
msgid "Chinese (Traditional)"
msgstr "Kitajščina (tradicionalno)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr "Neveljavna fizična enota"
msgid "Not a valid currency code"
msgstr "Neveljavna oznaka valute"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr "Nadrejena izgradnja"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "Del"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Dodeljeno meni"
@@ -601,11 +605,11 @@ msgstr "Dodeljeno meni"
msgid "Assigned To"
msgstr "Dodeljeno"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Neobvezno"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Montaža"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Sledi"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Testno"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Dodeljeno"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Na voljo"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Nalog izgradnje"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr ""
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Referenca naloga izgradnje"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Referenca dobavnica"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Lokacija vira"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Ciljna lokacija"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Koda statusa izgradnje"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Številka serije"
@@ -883,8 +887,8 @@ msgstr "Rok dokončanja"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Rok končanja izdelave. Izdelava po tem datumu bo v zamudi po tem datumu."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Datom končanja"
@@ -900,7 +904,7 @@ msgstr "Izdal"
msgid "User who issued this build order"
msgstr "Uporabnik, ki je izdal nalog za izgradnjo"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr "Izgradnja se ne ujema s nalogom izdelave"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Količina za zalogo s serijsko številko mora biti 1"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Prestavljena zaloga ({q}) ne sme presegati zaloge ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Preveč zaloge je prestavljene"
@@ -1057,8 +1061,8 @@ msgstr "Preveč zaloge je prestavljene"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Postavka zaloge"
@@ -1082,7 +1086,7 @@ msgstr "Destinacija postavke zaloge"
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Uporabnik"
@@ -1654,8 +1658,8 @@ msgstr "Uporabnik"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr ""
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktivno"
@@ -1686,7 +1690,7 @@ msgstr "Aktivno"
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr ""
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Priloga"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr "Ime datoteke"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Poslano"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Prestavljena količina mora biti večja od 0"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po
index e6aa866f48..b9fdcd14e6 100644
--- a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Serbian (Latin)\n"
"Language: sr_CS\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API krajnja tačka nije pronađena"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Lista nevalidiranih stavki"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Korisnik nema dozvolu za pregled ovog modela"
@@ -65,11 +65,11 @@ msgstr "Potvrda adrese e-pošte"
msgid "You must type the same email each time."
msgstr "Svaki put morate upisati istu e-poštu."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Navedena primarna adresa e-pošte nije važeća."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Navedeni domen adrese e-pošte nije prihvaćen."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Nije moguće konvertovati {original} u {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Isporučena nevažeća količina"
@@ -105,22 +105,22 @@ msgstr "Unesite datum"
msgid "Invalid decimal value"
msgstr "Neispravna decimalna vrednost"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Napomene"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Vrednost '{name}' se ne pojavljuje u formatu obrasca"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Navedena vrednost ne odgovara traženom obrascu: "
@@ -164,51 +164,51 @@ msgstr "Uklonite HTML oznake iz ove vrednosti"
msgid "Data contains prohibited markdown content"
msgstr "Podatak sadrži zabranjen jezički sadržaj"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Greška u povezivanju"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Server je odgovorio nevažećim statusnim kodom"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Došlo je do izuzetka"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Server je odgovorio nevažećom vrednošću dužina sadržaja"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Veličina slike je prevelika"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Preuzimanje slike premašilo je maksimalnu veličinu"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Udaljeni server vratio je prazan odgovor"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Navedeni URL nije važeća slikovna datoteka"
@@ -220,117 +220,121 @@ msgstr "Prijavljivanje na aplikaciju"
msgid "Email"
msgstr "E-Pošta"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Greška prilikom validacije ekstenzije"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metapodaci moraju biti \"python dict\" objekat"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Metapodaci dodatka"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Polje metapodataka JSON, za korištenje eksternih dodataka"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Neispravno formatiran obrazac"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Naveden je ključ nepoznatog formata"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Nedostaje potreban ključ formata"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Polje za reference ne može biti prazno"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Referenca mora odgovarati traženom obrascu"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Broj reference je predugačak"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Nevažeći izvor"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Ime"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Opis"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Opis (Opciono)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Putanja"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Dvostruka imena ne mogu postojati pod istom nadredjenom grupom"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Zabeleške (Opciono)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Podaci sa barkoda"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Podaci sa barkoda trećih lica"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Heš barkoda"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Jedinstveni hash barkoda"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Postojeći barkod pronađen"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Greška servera"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Server je zabležio grešku."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Mora biti važeći broj"
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Odaberite valutu među dostupnim opcijama"
@@ -521,11 +525,11 @@ msgstr "Kineski (Uprošćeni)"
msgid "Chinese (Traditional)"
msgstr "Kineski (Tradicionalni)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr "Nevažeća jedinica mere"
msgid "Not a valid currency code"
msgstr "Nevažeći kod valute"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Status naloga"
@@ -546,23 +550,23 @@ msgstr "Status naloga"
msgid "Parent Build"
msgstr "Roditeljski proizvod"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Uključi varijante"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Uključi varijante"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Uključi varijante"
msgid "Part"
msgstr "Deo"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Kategorija"
@@ -593,7 +597,7 @@ msgstr "Kategorija"
msgid "Ancestor Build"
msgstr "Proizvod predaka"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Dodeljeno meni"
@@ -601,11 +605,11 @@ msgstr "Dodeljeno meni"
msgid "Assigned To"
msgstr "Dodeljeno"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Kreirano pre"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Kreirano nakon"
@@ -641,99 +645,99 @@ msgstr "Završeno pre"
msgid "Completed after"
msgstr "Završeno nakon"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Ne uključuj stablo"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Proizvod mora biti poništen pre nego što se izbriše"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Potrošni materijal"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Opciono"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Sklapanje"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Praćeno"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Proverljivo"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Neizmirena narudžbina"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Alocirano"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Dostupno"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "Po narudžbini"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Nalog za izradu"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Lokacija"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Reference naloga za pravljenje"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Referenca naloga za prodaju"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Lokacija izvora"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Lokacija odredišta"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Kod statusa izgradnje"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Kod serije"
@@ -883,8 +887,8 @@ msgstr "Datum ciljanog završetka"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Ciljani datum za završetak izgradnje. Izgradnja će biti u prekoračenju nakon ovog datuma"
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Datum završetka"
@@ -900,7 +904,7 @@ msgstr "izdato od"
msgid "User who issued this build order"
msgstr "Korisnik koji je izdao nalog za izgradnju"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Prioritet ovog naloga za izgradnju"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Kod projekta"
@@ -962,9 +966,9 @@ msgstr "Izlaz izgradnje se ne slaže sa Nalogom za izgradnju"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Količina mora biti veća od nule"
@@ -999,7 +1003,7 @@ msgstr "Objekat izgradnje"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Količina mora da bude 1 za zalihe koje su serijalizovane"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Alocirana količina ({q}) ne sme da bude veća od količine dostupnih zaliha ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Stavka zaliha je prealocirana"
@@ -1057,8 +1061,8 @@ msgstr "Stavka zaliha je prealocirana"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Stavka zaliha"
@@ -1082,7 +1086,7 @@ msgstr "Stavka zaliha odredišta"
msgid "Build Level"
msgstr "Nivo izgradnje"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Ime dela"
@@ -1139,7 +1143,7 @@ msgstr "Automatski alociraj serijske brojeve"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Automatski alociraj tražene stavke sa odgovarajućim serijskim brojevima"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Sledeći serijski brojevi već postoje ili su neispravni"
@@ -1272,7 +1276,7 @@ msgstr "Stavka porudžbine za izradu"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part mora da se referencira istom delu kao u nalogu za izgradnju"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Stavka mora da bude u zalihama"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Deo dobavljača"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Dozvoli varijante"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "BOM stavka"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "U proizvodnji"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Spoljašnje zalihe"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Dostupne zalihe"
@@ -1527,31 +1531,31 @@ msgstr "Prekoračeni nalog za izgradnju"
msgid "Build order {bo} is now overdue"
msgstr "Nalog za izgradnju {bo} je sada prekoračen"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "je link"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "je datoteka"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "Korisnik nema potrebne dozvole da bi izbrisao ove atačmente"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "Korisnik nema dozvolu da izbriše ovaj atačment"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Lista odabira je zaključana"
@@ -1571,8 +1575,8 @@ msgstr "Nisu obezbeđeni ispravni kodovi valuta"
msgid "No plugin"
msgstr "Nema dodataka"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "Tekstualni ključ mora da bude jedinstven"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Korisnik"
@@ -1654,8 +1658,8 @@ msgstr "Korisnik"
msgid "Price break quantity"
msgstr "Prelomna količina cene"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Cena"
@@ -1677,8 +1681,8 @@ msgstr "Ime ovog zahteva za izmenu stranice"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktivan"
@@ -1686,7 +1690,7 @@ msgstr "Aktivan"
msgid "Is this webhook active"
msgstr "Da li je ovaj zahtev za izmenu aktivan?"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token"
@@ -1756,7 +1760,7 @@ msgstr "Naslov"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definicija"
msgid "Unit definition"
msgstr "Definicija jedinice"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Prilog"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "Stanje logičkog ključa je jednako posebnom ključu u poslovnoj logici"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Vrednost"
@@ -2172,7 +2176,7 @@ msgstr "Validni izbori za ovaj parametar (razdvojeni zapetom)"
msgid "Selection list for this parameter"
msgstr "Lista izbora za ovaj parametar"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Omogućen"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Šablon"
@@ -2262,7 +2266,7 @@ msgstr "Datum i vreme skeniranja bar koda"
msgid "URL endpoint which processed the barcode"
msgstr "URL krajnja tačka kojaj je obradila bar kod"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Kontekst"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Podaci odgovora za skeniranje bar koda"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Rezultat"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Ključ"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} poništeno"
msgid "A order that is assigned to you was canceled"
msgstr "Narudžbina koja je bila dodeljena vama je otkazana"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Stavke primljene"
@@ -2524,7 +2528,7 @@ msgstr "Ime datoteke"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Tip modela"
@@ -2669,8 +2673,8 @@ msgstr "Koliko često ažurirati devizne kurseve (podesi na nulu za onemogućti)
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "dani"
@@ -2914,8 +2918,8 @@ msgstr "Podrazumevano je da su delovi šabloni"
msgid "Parts can be assembled from other components by default"
msgstr "Podrazumevano je da se delovi mogu sastavljati od drugih komponenti"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Komponenta"
@@ -2931,7 +2935,7 @@ msgstr "Može da se kupi"
msgid "Parts are purchaseable by default"
msgstr "Podrazumevano je da se delovi mogu kupiti"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Može da se proda"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Greške evidentiranja koje se dese prilikom generisanja izveštaja"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Veličina stranice"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Dozvoli da stavke sa zaliha koje nisu na zalihama budu premeštane između lokacija zaliha"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Referentni šablon naloga za izradu"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Potreban šablon za generisanje referentnog polja naloga za izradu"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Potreban odgovoran vlasnik"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Odgovoran vlasnik mora biti dodeljen svakom nalogu"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Potreban aktivan deo"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Spreči kreiranje naloga za izradu za neaktivne delove"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Potreban zaključan deo"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Spreči kreiranje nalogaza izradu za otključane delove"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "Potreban validan spisak materijala"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "Spreči kreiranje naloga za izradu pre validacije spiska materijala"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "Potrebno završavanje podređenih naloga"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Spreči završavanje naloga za izradu pre završavanja svih podređenih naloga"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Blokiraj dok ne prođe test"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Spreči završavanje naloga za izradu pre uspešnog završetka svih testova"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Omogući naloge za vraćanje"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Omogući funkcionalnost vraćana u korisničkom interfejsu"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Referentni šablon naloga za vraćanje"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "Potreban šablon pri generisanju referentnog polja naloga za vraćanje"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Izmeni završene naloge za vraćanje"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Dozvoli izmenu naloga za vraćanje nakon što su završeni"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Referentni šablon naloga za prodaju"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Potreban šablon pri generisanju referentnog polja naloga za prodaju"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Podrazumevana isporuka naloga za prodaju"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Omogućava kreiranje podrazumevane isporuke sa nalozima za prodaju"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Izmeni završene naloge za prodaju"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Dozvoli izmenu naloga za prodaju nakon što su isporučeni ili završeni"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Označi isporučene naloge kao završene"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Nalozi za prodaju označeni kao isporučeni će automatski biti završeni, zaobilazeći status isporučen"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Referentni šablon naloga za kupovinu"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Potreban šablon pri generisanju referentnog polja naloga za kupovinu"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Izmeni završene naloge za kupovinu"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Dozvoli izmenu naloga za kupovinu nakon što su isporučeni ili završeni"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Automatski završi naloge za kupovinu"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Automatski označi naloge za kupovinu kao završene kada su primljene sve stavke porudžbine"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Omogući zaboravljenu lozinku"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Omogući funkcionalnost zaboravljene lozinke na stranicama za prijavljivanje"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Omogući registraciju"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Omogući registraciju korisnicima na stranicama za prijavljivanje"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Omogući SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Omogući SSO na stranicama za prijavljivanje"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Omogući SSO registraciju"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Omogući registraciju preko SSO za korisnike na stranicaa za prijavljivanje"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "Omogući SSO sinhronizaciju grupa"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "Omogući sinhronizaciju grupa aplikacije sa grupama IdP-a"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "SSO ključ grupe"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "Nazivi grupa dobijaju atribute od IdP-a"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "Mapiranje SSO grupa"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "Mapiranje SSO grupa u lokalne grupe aplikacije. Ukoliko lokalna grupa ne postoji, biće kreirana."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "Ukloni grupe van SSO"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "Da li će grupe dodeljene korisnicima biti uklonjene ukoliko nisu podržane IdP-om. Onemogućavanje ovoga može dovesti do problema."
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Email neophodan"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Zahtevaj od korisnika da dostavi mejl prilikom registracije"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Automatski popuni SSO korisnike"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Automatski popuni korisnikove podatke iz SSO naloga"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Email dva puta"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Pitaj korisnika dva puta za email prilikom registracije"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Lozinka dva puta"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Pitaj korisnika dva puta za lozinku prilikom registracije"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Dozvoljeni domeni"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Ograniči registraciju na određene domene (razdvojeni zapetom, počinju sa @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Grupa pri registrovanju"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Grupa kojoj se novi korisnici dodeljuju pri registraciji. Ukoliko je SSO group sync omogućen, ova grupa će se dodavati ukoliko korisnik ne može da dobije grupu iz IdP-a."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Nametni MFA"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Korisnici moraju koristiti multifaktorsku bezbednost"
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Proveri plugine pri pokretanju"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Proveri da li su svi pluginovi instalirani pri pokretanju - omogućeni u kontejnerskim okruženjima"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Proveri ažuriranja pluginova"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Omogući periodično proveranje pluginova"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Omogući URL integraciju"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Omogući da pluginovi dodaju URL rute"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Omogući integraciju u navigaciju"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Omogući integraciju pluginova u navigaciju"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Omogući integraciju aplikacija"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Omogući pluginovima da dodaju aplikacije"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Omogući integraciju planiranja"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Omogući da plugini izvršavaju planirane zadatke"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Omogući integraciju događaja"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Omogući da plugini odgovaraju na unutrašnje događaje"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Omogući integraciju interfejsa"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Omogući integraciju pluginova u korisnički interfejs"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Ne uključuj eksterne lokacije"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Period automatskog popisa"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Prikaži puna imena korisnika"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Prikaži puna imena korisnika umesto korisničkih imena"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Omogući podatke test stanica"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Omogući prikupljanje podataka sa test stanica radi rezultata testova"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "Nije dostavljen tip modela priloga"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Nevažeći tip modela priloga"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "Minimalno mesta ne sme biti veće od maksimalno mesta"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "Maksimalno mesta ne sme biti manje od minimalno mesta"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Prazan domen nije dozvoljen."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Nevažeće ime domena: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "Vrednost mora biti napisana velikim slovima"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "Vrednost mora biti važeći identifikator promenljive"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "Dobavljač je aktivan"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Proizvođač"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Kompanija"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Email adresa kontakta"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Kontakt"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Adrese"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Link za adresne informacije (eksterni)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Deo proizvođača"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Izaberi proizvođača"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "Broj dela proizvođača"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Povezani delovi dobavljača moraju referencirati isti osnovni deo"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Dobavljač"
@@ -4448,7 +4460,7 @@ msgstr "Dobavljač"
msgid "Select supplier"
msgstr "Izaberi dobavljača"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Jedinica za držanje dobavljačevih zaliha"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimalna naplata (npr. taksa za slaganje)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Pakovanje"
@@ -4533,7 +4545,7 @@ msgstr "Podrazumevana valuta koja se koristi za ovog dobavljača"
msgid "Company Name"
msgstr "Naziv kompanije"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Na zalihama"
@@ -4722,7 +4734,7 @@ msgstr "Originalni podaci vrste"
msgid "Errors"
msgstr "Greške"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Važeće"
@@ -4838,7 +4850,7 @@ msgstr "Broj kopija za štampanje od svakog natpisa"
msgid "Connected"
msgstr "Konektovano"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Nepoznato"
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Grupa"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Referenca naloga"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Izvanredno"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Ima šifru projekta"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Kreirano do strane"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Kreirano pre"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Kreirano nakon"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Krajnji datum pre"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Krajnji datum nakon"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Ima cenu"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Završen pre"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Završen nakon"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Nalog"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Nalog završen"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Interni deo"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Nalog na čekanju"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Završeno"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Ima isporuku"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Nalog za kupovinu"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Nalog za kupovinu"
msgid "Sales Order"
msgstr "Nalog za prodaju"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Nalog za vraćanje"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr "Opis naloga (opciono)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Izaberi šifru projekta za ovaj nalog"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Link ka eksternoj stranici"
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Ciljani datum"
@@ -5184,487 +5196,487 @@ msgstr "Lice za kontakt za ovaj nalog"
msgid "Company address for this order"
msgstr "Adresa kompanije za ovaj nalog"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Referenca naloga"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Status"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Status naloga za kupovinu"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Kompanija od koje su stavke naručene"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Referenca dobavljača"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Referentni kod dobavljača naloga"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "primljeno od strane"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Datum kada je nalog završen"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Odredište"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Odredište za primljene stavke"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Dobavljač dela se mora poklapati sa dobavljačem naloga za kupovinu"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Stavka porudžbine se ne poklapa sa nalogom za kupovinu"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Količina mora biti pozitivan broj"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Mušterija"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Kompanija kojoj se prodaju stavke"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Status naloga za prodaju"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Referenca mušterije"
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Referentni kod mušterijinog naloga"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Datum isporuke"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "isporučeno od strane"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "Nalog je već završen"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "Nalog je već otkazan"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Samo otvoren nalog može biti označen kao završen"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Nalog ne može biti završen jer ima nepotpunih isporuka"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "Nalog ne može biti završen jer ima nepotpunih alokacija"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Nalog ne može biti završen jer ima nezavršenih stavki porudbžine"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Količina stavki"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Referenca stavke porudbžine"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Beleške stavke porudbžine"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Krajnji datum za ovu stavku porudbćine (ostaviti prazno za krajnji datum sa naloga)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Opis stavke porudžbine (opciono)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Dodatni kontekst za ovu porudžbinu"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Cena jedinice"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "Stavka porudžbine naloga za kupovinu"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "Deo dobavljača se mora poklapati sa dobavljačem"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Deo dobavljača"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Primljeno"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Broj primljenih stavki"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Kupovna cena"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Kupovna cena jedinice"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "Dodatna porudbžina naloga za kupovinu"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "Stavka porudžbine naloga za prodaju"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Samo delovi koji se mogu prodati mogu biti dodeljeni nalogu za prodaju"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Prodajna cena"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Prodajna cena jedinice"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Poslato"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Isporučena količina"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "Isporuka naloga za prodaju"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Datum isporuke"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Datum dostavljanja"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Datum dostavljanja isporuke"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Provereno od strane"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Korisnik koji je proverio ovu isporuku"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Isporuka"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Broj isporuke"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Broj praćenja"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Informacije o praćenju isporuke"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Broj računa"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Referentni broj za dodeljeni račun"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Isporuka je već poslata"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Isporuka nema alocirane stavke sa zaliha"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "Dodatne porudbžine naloga za prodaju"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "Alokacije naloga za prodaju"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "Stavka sa zaliha nije dodeljena"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Ne mogu se alocirati stavke sa zaliha porudbžini sa drugačijim delom"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Ne mogu se alocirati zalihe porudbžini bez dela"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Alocirana količina ne sme da pređe količinu zaliha"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Količina alokacije mora da bude veća od nule"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Količina mora biti 1 za serijalizovane stavke sa zaliha"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Nalog za prodaju se ne poklapa sa isporukom"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Isporuka se ne poklapa sa nalogom za prodaju"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Porudbžina"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Referenca isporuke naloga za prodaju"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Stavka"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Izaberi stavku sa zaliha za alokaciju"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Unesi količinu za alokaciju zaliha"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Referenca naloga za vraćanje"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Kompanija čije stavke su vraćene"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Status naloga za vraćanje"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "Vrati stavku porudbžine"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "Stavka sa zaliha mora biti određena"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "Količina vraćanja je premašila količinu zaliha"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "Količina vraćanja mora biti veća od nule"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Nevažeća količina za serijalizovane stavke sa zaliha"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Izaberi stavku za vraćanje od mušterije"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Primljeno datuma"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Ishod"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Ishod za ovu stavku porudžbine"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Trošak asociran sa popravkom ili vraćanjem ove stavke porudžbine"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "Doda"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr "Kopiraj dodatne porudžbine"
msgid "Copy extra line items from the original order"
msgstr "Kopiraj dodatne stavke porudžbine sa originalnog naloga"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Kopiraj parametre"
@@ -5784,11 +5796,11 @@ msgstr "Spoj stavke"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Spoj stavke sa istim delom, odredištem i ciljanim datumom u jednu stavku porudžbine"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "Jedinica za praćenje zaliha"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Interni broj dela"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Unesi šifru ture za nadolazeće stavke sa zaliha"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Datum isteka"
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Označeno zvezdicom"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Filtiraj po kategorijama označenim zvezdicom"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Dubina"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Filtriraj po dubini kategorije"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Vrhovni"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Filtriraj po vrhovnim kategorijama"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Kaskadno"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Uključi pod-kategorije u filtriranim rezultatima"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Nadređen"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Filtriraj po nadređenoj kategoriji"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Ne uključuj pod-kategorije pod specifičnom kategorijom"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Ima rezultate"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "Je revizija"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "Ima revizije"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "Spisak materijala validan"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "Deo sklopa se može testirati"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "Deo komponente se može testirati"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Koristi"
@@ -6213,7 +6233,7 @@ msgstr "Podrazumevane ključne reči za delove ove kategorije"
msgid "Icon"
msgstr "Ikonica"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikonica (opciono)"
@@ -6349,7 +6369,7 @@ msgstr "Ključne reči dela da bi se poboljšala vidljivost u rezultatima pretra
msgid "Part category"
msgstr "Kategorija dela"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "Interni broj dela"
@@ -6358,7 +6378,7 @@ msgstr "Interni broj dela"
msgid "Part revision or version number"
msgstr "Revizija dela ili broj verzije"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Revizija"
@@ -6382,7 +6402,7 @@ msgstr "Podrazumevani istek"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Vreme isteka (u danima) za stavke sa zaliha ovog dela"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Minimalne zalihe"
@@ -6390,7 +6410,7 @@ msgstr "Minimalne zalihe"
msgid "Minimum allowed stock level"
msgstr "Minimalni dozvoljen nivo zaliha"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Ukupne dostupne zalihe za vreme popisa"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Datum"
@@ -6759,7 +6779,7 @@ msgstr "Pod-deo"
msgid "Select part to be used in BOM"
msgstr "Izaberi deo koji će biti korišćen u spisku materijala"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr "Nadređena kategorija"
msgid "Parent part category"
msgstr "Nadređena kategorija dela"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Podkategorije"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Rezultati"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Broj rezultata napravljenih na osnovu ovog šablona"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Valuta kupovine za ovu stavku sa zaliha"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Originalni deo"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Izaberi originalni deo za duplikaciju"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Kopiraj sliku"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Kopiraj sliku sa originalnog dela"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Kopiraj spisak materijala"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Kopiraj spisak materijala sa originalnog dela"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Kopiraj parametarske podatke sa originalnog dela"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Kopiraj beleške"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Kopiraj beleške sa originalnog dela"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Inicijalna količina zaliha"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Odredi inicijalnu količinu zaliha za ovaj deo. Ukoliko je količina nula, neće biti dodate zalihe."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Inicijalna lokacija zaliha"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Odredi inicijalnu lokaciju zaliha za ovaj deo"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Izaberi dobavljača (ostavi prazno za preskakanje)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Izaberi proizvođača (ostavi prazno za preskakanje)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Broj dela proizvođača"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "Izabrana kompanija nije validan dobavljač"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "Izabrana kompanija nije validan proizvođač"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Deo proizvođača koji se poklapa sa ovim brojem dela proizvođača već postoji"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Deo dobavljača koji se opklapa sa ovim brojem dela dobavljača već postoji"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Naziv kategorije"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Izrađivanje"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Stavke sa zaliha"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Revizije"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Ukupne zalihe"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Nealocirane zalihe"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Varijante zaliha"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Dupliraj deo"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Kopiraj inicijalne podatke od drugog dela"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Početne zalihe"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Kreiraj deo sa početnom količinom zaliha"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Informacije o dobavljaču"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Dodaj inicijalne informacije o dobavljaču za ovaj deo"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Kopiraj parametre kategorije"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Kopiraj parametarske šablone sa izabrane kategorije dela"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Postojeća slika"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Ime fajla postojeće slike dela"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Fajl sa slikom ne postoji"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Validiraj ceo spisak materijala"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Može se izgraditi"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Minimalna cena"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Izmeni izračunatu vrednost za minimalnu cenu"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Minimalna valuta cene"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Maksimalna cena"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Izmeni izračunatu vrednost maksimalne cene"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Maksimalna valuta cene"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Ažuriraj"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Ažuriraj cene za ovaj deo"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Nija moguća konverzija iz dostavljen valute u {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Minimalna cena ne sme biti veća od maksimalne cene"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Maksimalna cena ne sme biti manja od minimalne cene"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "Izaberi nadređeni sklop"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "Izaberi komponentu dela"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Izaberi deo sa kog će se kopirati spisak materijala"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Ukloni postojeće podatke"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Ukloni postojeće stavke sa spiska materijala pre kopiranja"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Uključi nasleđeno"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Uključi stavke sa spiska materijala koje su nasleđene od šablonskih delova"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Preskoči nevažeće vrste"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Omogući ovu opciju za preskakanje nevažećih vrsta"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Kopiraj zamenske delove"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Kopiraj zamenske delove prilikom duplikacije stavki sa spiska materijala"
@@ -7326,91 +7346,91 @@ msgstr "Nema određene akcije"
msgid "No matching action found"
msgstr "Nema poklapajuće akcije"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Nema poklapanja za podatke sa bar koda"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Pronađeno poklapanje za podatke sa bar koda"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "Model nije podržan"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "Instanca modela nije pronađena"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Bar kod se poklapa sa postojećom stavkom"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Nema podudarajućih podataka o delovima"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Nema pronađenih podudarajućih delova dobavljača"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Više podudarajućih delova dobavljača pronađeno"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "Nema podudarajućeg plugina za podatke sa bar koda"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Podudarajući deo dobavljača"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Stavka je već primljena"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "Nijedan plugin se ne poklapa sa dobavljačevim bar kodom"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Više pronađenih poklapajućih stavki porudžbine"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Nema podudarajućih stavki porudbžine pronađenih"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Nema dostavljenih naloga za prodaju"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Bar kod se ne poklapa sa postojećom stavkom sa zaliha"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Stavka sa zaliha se ne podudara sa stavkom porudbžine"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Nedovoljno dostupnih stavki"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Stavka alocirana nalogu za prodaju"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Nema dovoljno informacija"
@@ -7992,7 +8012,7 @@ msgstr "Border"
msgid "Print a border around each label"
msgstr "Štampa border oko svakog natpisa"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Lendskejp"
@@ -8072,77 +8092,77 @@ msgstr "Pruža podršku za skeniranje TME bar kodova"
msgid "The Supplier which acts as 'TME'"
msgstr "Dobavljač koji se ponaša kao 'TME'"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "Instalacija plugina je onemogućena"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Plugin instaliran uspešno"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Instaliran plugin na {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "Plugin nije pronađen u registru"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "Plugin nije paket plugin"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "Ime paketa plugina nije pronađeno"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "Samo osoblje može da administrira pluginove"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "Deinstaliranje plugina je onemogućeno"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Plugin ne može biti deinstaliran jer je trenutno aktivan"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "Plugin nije instaliran"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "Instalacija plugina nije pronađena"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "Plugin uspešno deinstaliran"
@@ -8194,21 +8214,21 @@ msgstr "Paket plugin"
msgid "Plugin"
msgstr "Plugin"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Nije pronađen autor"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Plugin '{p}' nije kompatibilan sa trenutnom verzijom aplikacije {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Plugin zahteva najmanje verziju {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Plugin zahteva najviše verziju {v}"
@@ -8481,136 +8501,136 @@ msgstr "Legal"
msgid "Letter"
msgstr "Letter"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "Šablonski fajl sa ovim imenom već postoji"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Ime šablona"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Opis šablona"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "Broj revizija (auto-inkrement)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Priloži kao model uz štampanje"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Sačuvaj izveštaj kao prilog uz uvezanu instancu modela prilikom štampanja"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Šablon imena fajlova"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "Šablon za generisanje imena fajlova"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "Šablon je omogućen"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "Tip ciljanog modela za šablon"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filteri"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "Filteri upita nad šablonima (lista razdvojena zarezom ključ=vrednost parova)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Šablonski fajl"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Veličina strane za PDF izveštaje"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Renderuj izveštaj u landscape orijentaciji"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Širina (u milimetrima)"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Širina natpisa, u milimetrima"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Visina (u milimetrima)"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Visina natpisa, u milimetrima"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Isečak"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Izveštaj isečka fajla"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Opis isečka fajla"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Sredstvo"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Izveštaj fajla sredstva"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Opis fajla sredstva"
@@ -8766,200 +8786,200 @@ msgstr "Nema rezultata"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Slika nije pronađena"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "part_image tag zahteva instancu dela"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "company_image tag zahteva instancu kompanije"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "Filtriraj po dubini lokacije"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "Filtriraj po nadređenim lokacijama"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "Uključi podlokacije u filtriranim rezultatima"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Nadređena lokacija"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Filtriraj po nadređenoj lokaciji"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Ime dela"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "Ime dela sadrži"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Ime dela (regex)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "Interni deo broja"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "Interni deo broja sadrži (osetljivo na velika i mala slova)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "Interni broj dela (regex)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Minimalne zalihe"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Maksimalne zalihe"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Statusni kod"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Eksterna lokacija"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "Potrošeno od strane naloga za izradu"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "Instalirano u drugu stavku sa zaliha"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Stablo dela"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Ažurirano pre"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Ažurirano nakon"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Popis pre"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Popis nakon"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Datum isteka pre"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Datum isteka nakon"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Zastarelo"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Količina je neophodna"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Validan deo mora biti dosavljen"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "Dati dobavljač ne postoji"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "Deo dobavljača ima definisanu veličinu pakovanja, ali fleg use_pack_size nije postavljen"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Serijski brojevi ne mogu biti dostavljeni za deo koji nije moguće pratiti"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Izaberi vlasnika"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Stavke sa zaliha ne mogu biti direktno locirane u strukturnim lokacijama zaliha, ali mogu biti locirane u podređenim lokacijama."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Eksterna"
@@ -9101,7 +9121,7 @@ msgstr "Izaberi odgovarajući deo dobavljača za ovu stavku sa zaliha"
msgid "Where is this stock item located?"
msgstr "Gde je locirana ova stavka sa zaliha?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Pakovanje u kom je ova stavka sa zaliha"
@@ -9117,7 +9137,7 @@ msgstr "Da li je ova stavka instalirana u drugu stavku?"
msgid "Serial number for this item"
msgstr "Serijski broj za ovu stavku"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Šifra ture za ovu stavku sa zaliha"
@@ -9206,7 +9226,7 @@ msgstr "Količine se ne poklapaju sa serijskim brojevima"
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "Test šablon ne postoji"
@@ -9226,7 +9246,7 @@ msgstr "Stavka sa zaliha sadrži druge stavke"
msgid "Stock item has been assigned to a customer"
msgstr "Stavka sa zaliha je dodeljena mušteriji"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Stavka sa zaliha je trenutno u produkciji"
@@ -9234,7 +9254,7 @@ msgstr "Stavka sa zaliha je trenutno u produkciji"
msgid "Serialized stock cannot be merged"
msgstr "Serijalizovane zalihe se ne mogu spojiti"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Dupliraj stavke sa zaliha"
@@ -9250,71 +9270,71 @@ msgstr "Stavke sa zaliha se moraju odnositi na isti deo dobavljača"
msgid "Stock status codes must match"
msgstr "Statusne šifre zaliha moraju da se poklapaju"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stavka se ne može pomeriti jer nije na zalihama"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "Praćenje stavke sa zaliha"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Ulazne beleške"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "Rezultat testa stavke sa zaliha"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Vrednost mora biti dostavljena za ovaj test"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Prilog mora biti dostavljen za ovaj test"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "Nevažeća vrednost za ovaj test"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Rezultat testa"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Vrednost završetka testa"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Prilog uz test rezultat"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Beleške sa testa"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "Stanica za testiranje"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "Identifikator stanice za testiranje gde je test izvršen"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Započeto"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "Vreme početka testa"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Završeno"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "Vreme završetka testa"
@@ -9398,7 +9418,7 @@ msgstr "Unesi serijske brojeve za nove stavke"
msgid "Supplier Part Number"
msgstr "Dobavljački broj dela"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Isteklo"
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Količina ne sme da pređe dostupnu količinu zaliha ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Odredišna lokacija zaliha"
@@ -9501,127 +9521,131 @@ msgstr "Izaberi stavke kojoj će se promeniti status"
msgid "No stock items selected"
msgstr "Nije izabrana stavka"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Podlokacije"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "Lokacija nadređenih zaliha"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Deo mora biti za prodaju"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "Stavka je alocirana nalogu za prodaju"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Stavka je alocirana nalogu za izradu"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Mušterija kojoj će se dodeliti stavke sa zaliha"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "Izabrana kompanija nije mušterija"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Beleške dodeljivanja zaliha"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Lista stavki mora biti dostavljena"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Beleške spajanja zaliha"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Dozvoli neslagajuće dobavljače"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Dozvoli spajanje stavki sa različitim delovima dobavljača"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Dozvoli neslagajući status"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Dozvoli spajanje stavki sa različitim statusnim kodovima"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Bar dve stavke moraju biti dostavljene"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Nema promena"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Vrednost primarnog ključa stavke"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "Stavka nije na zalihama"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Beleške transakcija zaliha"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Beleške transakcija zaliha"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr "Dozvole"
msgid "Important dates"
msgstr "Značajni datumi"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Token je opozvan"
@@ -9927,163 +9951,163 @@ msgstr "Token je opozvan"
msgid "Token has expired"
msgstr "Token je istekao"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API token"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API tokeni"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Naziv tokena"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Prilagođen naziv tokena"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Datum isteka tokena"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Poslednji put aktivan"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Poslednji put kada je token korišćen"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Opozvano"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Skup dozvola"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Pregledaj"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Dozvola za pregled stavki"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Dodaj"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Dozvola za dodavanje stavki"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Promeni"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Dozvole za izmenu stavki"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Obriši"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Dozvola za brisanje stavki"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po
index 2dce19e92b..1e236595b2 100644
--- a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API-slutpunkt hittades inte"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Användaren har inte behörighet att se denna modell"
@@ -65,11 +65,11 @@ 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/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Den angivna primära e-postadressen är inte giltig."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Den angivna e-postdomänen är inte godkänd."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Kunde inte konvertera {original} till {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Ogiltigt antal angivet"
@@ -105,22 +105,22 @@ msgstr "Ange datum"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Anteckningar"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Värdet '{name}' visas inte i mönsterformat"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Det angivna värdet matchar inte det obligatoriska mönstret: "
@@ -164,51 +164,51 @@ msgstr "Ta bort HTML-taggar från detta värde"
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Anslutningsfel"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Servern svarade med ogiltig statuskod"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Undantag inträffade"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Servern svarade med ogiltigt innehållslängdsvärde"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Bilden är för stor"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Nedladdning av bilder överskred maximal storlek"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Fjärrservern returnerade tomt svar"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Angiven URL är inte en giltig bildfil"
@@ -220,117 +220,121 @@ msgstr "Logga in på appen"
msgid "Email"
msgstr "E-postadress"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Du måste aktivera tvåfaktorsautentisering innan du kan göra något annat."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Fel vid validering av plugin"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadata måste vara ett python dict objekt"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Metadata för plugin"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "JSON metadata fält, för användning av externa plugins"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Felaktigt formaterat mönster"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Okänd formatnyckel angiven"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Obligatorisk formatnyckel saknas"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Textfältet kan inte lämnas tomt"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Referensen måste matcha obligatoriskt mönster"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Referensnumret är för stort"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Ogiltigt val"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Namn"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Beskrivning"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Beskrivning (valfritt)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Sökväg"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Markdown anteckningar (valfritt)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Streckkodsdata"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Tredje parts streckkodsdata"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Streckkodsdata"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Unik hash med streckkodsdata"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Befintlig streckkod hittades"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Serverfel"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Ett fel har loggats av servern."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Måste vara ett giltigt nummer"
msgid "Currency"
msgstr "Valuta"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Välj valuta från tillgängliga alternativ"
@@ -521,11 +525,11 @@ msgstr "Kinesiska (Förenklad)"
msgid "Chinese (Traditional)"
msgstr "Kinesiska (Traditionell)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr "Ogiltig fysisk enhet"
msgid "Not a valid currency code"
msgstr "Inte en giltig valutakod"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Orderstatus"
@@ -546,23 +550,23 @@ msgstr "Orderstatus"
msgid "Parent Build"
msgstr "Föregående tillverkning"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Inkludera varianter"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Inkludera varianter"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Inkludera varianter"
msgid "Part"
msgstr "Del"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Kategori"
@@ -593,7 +597,7 @@ msgstr "Kategori"
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr "Tilldelad till"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Skapad före"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Skapad efter"
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Tillverkningen måste avbrytas innan den kan tas bort"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Valfri"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Spårad"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Testbar"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Allokerad"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Konsumerad"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Tillgänglig"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Byggorder"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Plats"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Tillverknings order referens"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Försäljningsorderreferens"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Källa Plats"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Destinationsplats"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Tillverkning statuskod"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Batchkod"
@@ -883,8 +887,8 @@ msgstr "Datum för slutförande"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Måldatum för färdigställande. Tillverkningen kommer att förfallas efter detta datum."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Slutförandedatum"
@@ -900,7 +904,7 @@ msgstr "Utfärdad av"
msgid "User who issued this build order"
msgstr "Användare som utfärdade denna tillverknings order"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Projektkod"
@@ -962,9 +966,9 @@ msgstr "Byggutgång matchar inte bygg order"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr "Bygg objekt"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Antal måste vara 1 för serialiserat lager"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Lagerposten är överallokerad"
@@ -1057,8 +1061,8 @@ msgstr "Lagerposten är överallokerad"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Artikel i lager"
@@ -1082,7 +1086,7 @@ msgstr "Destination lagervara"
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Delnamn"
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Tillåt varianter"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "Är länk"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "Är fil"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Användare"
@@ -1654,8 +1658,8 @@ msgstr "Användare"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Pris"
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktiv"
@@ -1686,7 +1690,7 @@ msgstr "Aktiv"
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr "Titel"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Definition"
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Bilaga"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Värde"
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Aktiverad"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Mall"
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Sammanhang"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Resultat"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "E-posttrådar"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Nyckel"
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr "Filnamn"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "Modelltyp"
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "dagar"
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Komponent"
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Sidstorlek"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Förhindra produktion från att slutföras tills alla nödvändiga tester är klara"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Aktivera registrering"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Aktivera SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Tillåtna domäner"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Ogiltigt domännamn: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Tillverkare"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Företag"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Kontakt"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Adress"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "MPN"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Leverantör"
@@ -4448,7 +4460,7 @@ msgstr "Leverantör"
msgid "Select supplier"
msgstr "Välj leverantör"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr "Företagsnamn"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "I lager"
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr "Fel"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Giltig"
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr "Ansluten"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Okänd"
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Grupp"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Har projektkod"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Skapad av"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Skapad efter"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Intern del"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Slutförd"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr "Försäljningsorder"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr "Startdatum"
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Måldatum"
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Status"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Mål"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Kund"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Skickad"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Leveransdatum"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Kontrollerad av"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Fakturanummer"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Allokeringsmängden måste vara större än noll"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Rad"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Kopiera parametrar"
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Djup"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Har resultat"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "Är variant"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Använder"
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr "Ikon"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Ikon (valfritt)"
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr "Delkategori"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "IPN"
@@ -6358,7 +6378,7 @@ msgstr "IPN"
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Revision"
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Datum"
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Underkategorier"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Resultat"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Originaldel"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Kopiera bild"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "Kopiera test"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Kategorinamn"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Revisioner"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Uppdatera"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Hoppa över ogiltiga rader"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr "Ingen åtgärd specificerad"
msgid "No matching action found"
msgstr "Ingen matchande åtgärd hittades"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Mallnamn"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filter"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Mallfil"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Bredd [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Höjd [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr "Inga resultat"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Statuskod"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Extern plats"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Uppdaterad efter"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Välj ägare"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Testresultat"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Startad"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Ingen förändring"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr "Behörigheter"
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Tokennamn"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Visa"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Lägg till"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Ändra"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Radera"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Gäst"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Språk"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "Tema"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Visningsnamn"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "Användartyp"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "Organisation"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "Primär grupp"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po
index 401ceecaf6..c0179305a4 100644
--- a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "ไม่พบ API endpoint"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr ""
@@ -65,11 +65,11 @@ msgstr "การยืนยันอีเมล"
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr ""
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr ""
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr ""
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "ปริมาณสินค้าไม่ถูกต้อง"
@@ -105,22 +105,22 @@ msgstr "ป้อนวันที่"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "หมายเหตุ"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr ""
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr ""
@@ -164,51 +164,51 @@ msgstr ""
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "การเชื่อมต่อขัดข้อง"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr ""
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr ""
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr ""
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "ไฟล์รูปภาพมีขนาดใหญ่เกินไป"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr ""
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr ""
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr "อีเมล"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr ""
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "ข้อมูลเมตาของปลั๊กอิน"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "ชื่อ"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "คำอธิบาย"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr ""
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr ""
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "ข้อมูลบาร์โค้ด"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "บาร์โค้ดนี้มีในระบบแล้ว"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเวอร์"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "ต้องเป็นตัวเลข"
msgid "Currency"
msgstr "สกุลเงิน"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr ""
@@ -521,11 +525,11 @@ msgstr ""
msgid "Chinese (Traditional)"
msgstr ""
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr ""
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr ""
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr ""
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr ""
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr ""
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr ""
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr ""
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "สถานที่"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr ""
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr ""
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -883,8 +887,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr ""
@@ -900,7 +904,7 @@ msgstr "ออกโดย"
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "จำนวนต้องมีค่ามากกว่า 0"
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr ""
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr ""
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr ""
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "ผู้ใช้งาน"
@@ -1654,8 +1658,8 @@ msgstr "ผู้ใช้งาน"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr ""
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1686,7 +1690,7 @@ msgstr ""
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr ""
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "ไฟล์แนบ"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr ""
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr "ชื่อไฟล์"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr ""
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr ""
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr ""
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr ""
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr ""
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr ""
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr ""
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "สำเร็จแล้ว"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "สถานะ"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "จัดส่งแล้ว"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr ""
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr ""
@@ -6390,7 +6410,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr ""
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr ""
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr ""
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr ""
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr ""
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr ""
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po
index 4edcd9702b..c83e87422a 100644
--- a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API uç noktası bulunamadı"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr "Toplu işlem için öge listesi sağlanmalıdır"
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Ögeler bir liste olarak sağlanmalıdır"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Geçersiz ögeler listesi sağlandı"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "Tüm filtre yalnızca true ile kullanılmalıdır"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Sağlanan ölçüte uygun bir eşleşme yok"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Değer verilmemiş"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "Bu alan eşsiz olmalı."
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Kullanıcının bu modeli görüntüleme izni yok"
@@ -65,11 +65,11 @@ 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/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Sağlanan e-posta adresi geçerli değil."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Sağlanan e-posta alanı onaylanmadı."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "{original} birimi {unit} birimine dönüştürülemedi"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
@@ -105,22 +105,22 @@ msgstr "Tarih giriniz"
msgid "Invalid decimal value"
msgstr "Geçersiz ondalık değer"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Notlar"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "'{name}' değeri desen formatında yer almıyor"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Sağlanan değer gerekli kalıpla eşleşmiyor: "
@@ -164,173 +164,177 @@ msgstr "Bu değerden HTML etiketlerini kaldır"
msgid "Data contains prohibited markdown content"
msgstr "Veriler yasaklanmış işaretleme içeriği içeriyor"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr "Geçersiz URL: ana makina adı yok"
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr "Geçersiz URL: ana makina adı çözümlenemedi"
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr "URL özel veya ayrılmış bir IP adresini göstermektedir"
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr "Çok fazla yeniden yönlendirme"
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Bağlantı hatası"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Sunucu geçersiz durum kodu ile cevap verdi"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "İstisna oluştu"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Sunucu geçersiz Content-Length değeriyle yanıt verdi"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Görsel boyutu çok büyük"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Görsel indirme maksimum boyutu aştı"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Uzak sunucu boş cevap döndü"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "Sağlanan URL geçerli bir görsel dosyası değil"
#: InvenTree/magic_login.py:31
msgid "Log in to the app"
-msgstr "Uygulamaya giriş yapın"
+msgstr "Uygulamada oturum aç"
#: InvenTree/magic_login.py:41 company/models.py:175 users/serializers.py:197
msgid "Email"
msgstr "E-posta"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Başka bir şey yapmadan önce iki faktörlü kimlik doğrulamayı etkinleştirme gerekir."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Eklenti doğrulama sırasında hata oluştu"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadata, bir python dict nesnesi olmalıdır"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Plugin Metaverileri"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Harici eklentiler tarafından kullanım için JSON metadata alanı"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Yanlış biçimlendirilmiş desen"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Belirtilen bilinmeyen format anahtarı"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Gerekli format anahtarı eksik"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Referans alanı boş olamaz"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Referans {pattern} deseniyle mutlaka eşleşmeli"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Referans sayısı çok fazla"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Geçersiz seçim"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Adı"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Açıklama"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Açıklama (isteğe bağlı)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Yol"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Aynı kaynak altında birden fazla aynı isim kullanılamaz"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Markdown notları (isteğe bağlı)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Barkod Verisi"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Üçüncü parti barkod verisi"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Barkod Hash"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Barkod verisinin benzersiz hash'i"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Var olan barkod bulundu"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Sunucu Hatası"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Bir hafta sunucu tarafından kayıt edildi."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Geçerli bir numara olmalı"
msgid "Currency"
msgstr "Para birimi"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Mevcut seçeneklerden para birimini seçin"
@@ -521,11 +525,11 @@ msgstr "Çince (Basitleştirilmiş)"
msgid "Chinese (Traditional)"
msgstr "Çince (Geleneksel)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "Güncelleme mevcut"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "InvenTree için güncelleme mevcut"
@@ -537,7 +541,7 @@ msgstr "Geçersiz fiziksel birim"
msgid "Not a valid currency code"
msgstr "Geçerli bir para birimi kodu değil"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Sipariş Durumu"
@@ -546,23 +550,23 @@ msgstr "Sipariş Durumu"
msgid "Parent Build"
msgstr "Üst Yapım İşi"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "Varyantları Dahil Et"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "Varyantları Dahil Et"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "Varyantları Dahil Et"
msgid "Part"
msgstr "Parça"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Kategori"
@@ -593,7 +597,7 @@ msgstr "Kategori"
msgid "Ancestor Build"
msgstr "Kök Üretim"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Bana atandı"
@@ -601,11 +605,11 @@ msgstr "Bana atandı"
msgid "Assigned To"
msgstr "Atanılan Kişi"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "Daha önce oluşturuldu"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "Sonra oluşturuldu"
@@ -641,99 +645,99 @@ msgstr "Daha önce tamamlandı"
msgid "Completed after"
msgstr "Sonra tamamlandı"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "En yakın tarih"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "Maksimum Tarih"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "Ağacı Hariç Tut"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Üretim silinemeden önce iptal edilmelidir"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Sarf Malzemesi"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "İsteğe Bağlı"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Montaj"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "İzlenen"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Test Edilebilir"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "Sipariş Açık"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Tahsis Edildi"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Tüketildi"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Mevcut"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "Siparişte"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr "Üretim bulunamadı"
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Üretim Emri"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Konum"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "Çıktı"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "Çıktı stok kalemi ID'sine göre filtrele. Takılmamış üretim kalemlerini bulmak için ‘null’ kullan."
@@ -773,9 +777,9 @@ msgstr "Hedef tarih başlangıç tarihinden sonra olmalıdır"
msgid "Build Order Reference"
msgstr "Üretim Emri Referansı"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Satış Emri Referansı"
msgid "Sales Order to which this build is allocated"
msgstr "Bu üretimin tahsis edildiği satış siparişi"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Kaynak Konum"
@@ -821,7 +825,7 @@ msgstr "Harici Üretim"
msgid "This build order is fulfilled externally"
msgstr "Bu üretim emri harici olarak tamamlanmıştır"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Hedef Konum"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Üretim durum kodu"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Sıra numarası"
@@ -883,8 +887,8 @@ msgstr "Hedef tamamlama tarihi"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Üretimin tamamlanması için hedef tarih. Bu tarihten sonra üretim gecikmiş olacak."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Tamamlama tarihi"
@@ -900,7 +904,7 @@ msgstr "Düzenleyen"
msgid "User who issued this build order"
msgstr "Bu üretim emrini düzenleyen kullanıcı"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Bu üretim emrinin önceliği"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Proje Kodu"
@@ -962,9 +966,9 @@ msgstr "Üretim çıktısı, üretim emri ile eşleşmiyor"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Miktar sıfırdan büyük olmalıdır"
@@ -999,7 +1003,7 @@ msgstr "Üretim nesnesi"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1034,7 +1038,7 @@ msgstr "Ana parça izlenebilir olarak işaretlendiğinden, üretim kalemi bir ü
#: build/models.py:1906
msgid "Selected stock item does not match BOM line"
-msgstr "Seçilen stok kalemi BOM satırı ile eşleşmiyor"
+msgstr "Seçili stok kalemi BOM satırı ile eşleşmiyor"
#: build/models.py:1925
msgid "Allocated quantity must be greater than zero"
@@ -1049,7 +1053,7 @@ msgstr "Seri numaralı stok için miktar bir olmalı"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Tahsis edilen miktar ({q}) mevcut stok miktarını ({a}) aşmamalıdır"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
@@ -1057,8 +1061,8 @@ msgstr "Stok kalemi fazladan tahsis edilmiş"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Stok Kalemi"
@@ -1082,7 +1086,7 @@ msgstr "Hedef stok kalemi"
msgid "Build Level"
msgstr "Üretim Seviyesi"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Parça Adı"
@@ -1139,7 +1143,7 @@ msgstr "Seri Numaralarını Otomatik Tahsis Et"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Eşleşen seri numaralı gerekli kalemleri otomatik tahsis et"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Şu seri numaraları zaten varlar veya geçersizler"
@@ -1158,7 +1162,7 @@ msgstr "Ayırmaları İptal Et"
#: build/serializers.py:495
msgid "Discard any stock allocations for scrapped outputs"
-msgstr "Hurdaya ayrılan çıktılar için yapılan tüm stok ayırmalarını iptal et"
+msgstr "Hurdaya ayrılan çıktılar için yapılan tüm stok tahsislerini iptal et"
#: build/serializers.py:500
msgid "Reason for scrapping build output(s)"
@@ -1170,11 +1174,11 @@ msgstr "Tamamlanan üretim çıktıları içi konum"
#: build/serializers.py:545 order/serializers.py:2575
msgid "Accept Incomplete Allocation"
-msgstr "Tamamlanmamış Ayırmayı Onayla"
+msgstr "Eksik Tahsisi Kabul Et"
#: build/serializers.py:546
msgid "Complete outputs if stock has not been fully allocated"
-msgstr "Stok henüz tamamen tahsis edilmemşse çıktıları tamamla"
+msgstr "Stok henüz tamamen tahsis edilmemişse çıktıları tamamla"
#: build/serializers.py:635
msgid "Consume Allocated Stock"
@@ -1186,7 +1190,7 @@ msgstr "Bu üretim için zaten tahsis edilmiş olan tüm stokları tüket"
#: build/serializers.py:642
msgid "Remove Incomplete Outputs"
-msgstr "Tamamlanmamış Çıktıları Kaldır"
+msgstr "Eksik Çıktıları Kaldır"
#: build/serializers.py:643
msgid "Delete any build outputs which have not been completed"
@@ -1230,7 +1234,7 @@ msgstr "Gerekli stok tamamen tahsis edilemedi"
#: build/serializers.py:736 order/serializers.py:548 order/serializers.py:1746
msgid "Accept Incomplete"
-msgstr "Tamamlanmamış Kabul et"
+msgstr "Eksik Kabul et"
#: build/serializers.py:738
msgid "Accept that the required number of build outputs have not been completed"
@@ -1272,7 +1276,7 @@ msgstr "Üretim Satırı"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part üretim emri ile aynı parçayı göstermelidir"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Kalem stokta olmalıdır"
@@ -1291,7 +1295,7 @@ msgstr "İzlenmeyen parçaların tahsisi için üretim çıktısı belirtilemez"
#: build/serializers.py:968 order/serializers.py:2015 order/serializers.py:2843
msgid "Allocation items must be provided"
-msgstr "Ayrılma ögeleri sağlanmalıdır"
+msgstr "Tahsis ögeleri belirtilmelidir"
#: build/serializers.py:1032
msgid "Stock location where parts are to be sourced (leave blank to take from any location)"
@@ -1303,7 +1307,7 @@ msgstr "Konumu Hariç Tut"
#: build/serializers.py:1042
msgid "Exclude stock items from this selected location"
-msgstr "Bu seçilen konumdan stok kalemlerini hariç tut"
+msgstr "Stok kalemlerini bu seçili konumdan hariç tut"
#: build/serializers.py:1047 order/serializers.py:2087
msgid "Interchangeable Stock"
@@ -1315,11 +1319,11 @@ msgstr "Birden fazla konumdaki stok kalemleri birbirinin yerine kullanılabilir"
#: build/serializers.py:1053
msgid "Substitute Stock"
-msgstr "Yedek Stok"
+msgstr "Muadil Stok"
#: build/serializers.py:1054
msgid "Allow allocation of substitute parts"
-msgstr "Yedek parçaların ayrılmasına izin ver"
+msgstr "Muadil parçaların tahsis edilmesine izin ver"
#: build/serializers.py:1059
msgid "Optional Items"
@@ -1347,7 +1351,7 @@ msgstr "Kalem Türü"
#: build/serializers.py:1071
msgid "Select item type to auto-allocate"
-msgstr "Otomatik tahsis edilecek ürün tipini seçin"
+msgstr "Otomatik tahsis edilecek ürün türünü seçin"
#: build/serializers.py:1077 order/serializers.py:2096
msgid "Stock Priority"
@@ -1355,7 +1359,7 @@ msgstr "Stok Önceliği"
#: build/serializers.py:1078 order/serializers.py:2097
msgid "Preferred order in which matching stock items are consumed"
-msgstr "Eşleşen stok kalemlerinin tiketilmesinde tercih edilen sıra"
+msgstr "Eşleşen stok kalemlerinin tüketilmesinde tercih edilen sıra"
#: build/serializers.py:1086
msgid "Build Lines"
@@ -1385,8 +1389,8 @@ msgstr "Kur"
msgid "Build"
msgstr "Yap"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Varyantlara İzin Ver"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "ML Ögesi"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "Üretimde"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "Üretim için Planlandı"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Harici Stok"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Mevcut Stok"
@@ -1527,31 +1531,31 @@ msgstr "Geciken Üretim Emri"
msgid "Build order {bo} is now overdue"
msgstr "{bo} üretim emri şimdi gecikti"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr "Küçük Resim Var"
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "Link Olanlar"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "Dosya Olanlar"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "Kullanıcının bu ekleri silmek için izni yok"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr "Kullanıcının bu eki düzenleme izni yok"
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "Kullanıcının bu eki silmek için izni yok"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "Seçim listesi kilitli"
@@ -1571,8 +1575,8 @@ msgstr "Geçerli bir para birimi kodu sağlanmamış"
msgid "No plugin"
msgstr "Eklenti yok"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr "Etiketler"
@@ -1645,8 +1649,8 @@ msgstr "Anahtar dizesi benzersiz olmalı"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Kullanıcı"
@@ -1654,8 +1658,8 @@ msgstr "Kullanıcı"
msgid "Price break quantity"
msgstr "Fiyat kademesi miktarı"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Fiyat"
@@ -1677,8 +1681,8 @@ msgstr "Bu web kancası için ad"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Aktif"
@@ -1686,7 +1690,7 @@ msgstr "Aktif"
msgid "Is this webhook active"
msgstr "Bu web kancası aktif mi"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Token"
@@ -1756,7 +1760,7 @@ msgstr "Başlık"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Tanımlama"
msgid "Unit definition"
msgstr "Birim tanımlaması"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Ek"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "İş mantığında bu özel duruma eşit olan durum mantıksal anahtarı"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Değer"
@@ -2006,7 +2010,7 @@ msgstr "Anahtar, referans durumunun mantık anahtarlarından farklı olmalıdır
#: common/models.py:2376
msgid "Logical key must be in the logical keys of the reference status"
-msgstr "Mantık anahtarı, referans durumunun mantık anahtarları içinde olmalıdır"
+msgstr "Mantıksal anahtar, referans durumunun mantıksal anahtarları içinde olmalıdır"
#: common/models.py:2383
msgid "Name must be different from the names of the reference status"
@@ -2172,7 +2176,7 @@ msgstr "Bu parametre için geçerli seçenekler (virgül ile ayrılmış)"
msgid "Selection list for this parameter"
msgstr "Bu parametre için seçim listesi"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Etkin"
@@ -2204,8 +2208,8 @@ msgstr "Model ID"
msgid "ID of the target model for this parameter"
msgstr "Bu parametre için hedef modelin ID'si"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Şablon"
@@ -2262,7 +2266,7 @@ msgstr "Barkod taramasının tarihi ve saati"
msgid "URL endpoint which processed the barcode"
msgstr "Barkodu işleyen URL uç noktası"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Bağlam"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "Barkod taramasından gelen yanıt verisi"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Sonuç"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "E-posta Konuları"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Anahtar"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} iptal edildi"
msgid "A order that is assigned to you was canceled"
msgstr "Size atanmış bir emir iptal edildi"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Teslim Alınan Kalemler"
@@ -2524,9 +2528,9 @@ msgstr "Dosya adı"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
-msgstr "Model Tipi"
+msgstr "Model Türü"
#: common/serializers.py:837
msgid "User does not have permission to create or edit attachments for this model"
@@ -2614,7 +2618,7 @@ msgstr "Süper kullanıcı afişini göster"
#: common/setting/system.py:240
msgid "Show a warning banner in the UI when logged in as superuser"
-msgstr "Süper kullanıcı olarak giriş yapınca arayüzde bir uyarı afişi göster"
+msgstr "Süper kullanıcı olarak oturum açınca arayüzde bir uyarı afişi göster"
#: common/setting/system.py:245
msgid "Show admin banner"
@@ -2622,7 +2626,7 @@ msgstr "Yönetici afişi göster"
#: common/setting/system.py:246
msgid "Show a warning banner in the UI when logged in as admin"
-msgstr "Yönetici olarak giriş yapınca arayüzde bir uyarı afişi göster"
+msgstr "Yönetici olarak oturum açınca arayüzde bir uyarı afişi göster"
#: common/setting/system.py:251 company/models.py:147 company/models.py:148
msgid "Company name"
@@ -2669,8 +2673,8 @@ msgstr "Döviz kurlarını şu sıklıkla güncelle (etkisizleştirmek için sı
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "günler"
@@ -2914,8 +2918,8 @@ msgstr "Parçaları varsayılan olan şablondur"
msgid "Parts can be assembled from other components by default"
msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Bileşen"
@@ -2931,7 +2935,7 @@ msgstr "Satın Alınabilir"
msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Satılabilir"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "Raporlar üretirken oluşan hataları günlüğe kaydet"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Sayfa Boyutu"
@@ -3202,11 +3206,11 @@ msgstr "Stok kalemleri için varsayılan parti kodları oluşturma şablonu"
#: common/setting/system.py:736
msgid "Stock Expiry"
-msgstr "Stok Sona Erme Tarihi"
+msgstr "Stok Raf Ömrü"
#: common/setting/system.py:737
msgid "Enable stock expiry functionality"
-msgstr "Stokun sona erme işlevselliğini etkinleştir"
+msgstr "Stokun raf ömrü özelliğini etkinleştir"
#: common/setting/system.py:742
msgid "Sell Expired Stock"
@@ -3258,7 +3262,7 @@ msgstr "Stok tablolarında takılı stok kalemlerini görüntüle"
#: common/setting/system.py:781
msgid "Check BOM when installing items"
-msgstr "Kalemlerin kurulumunu yaparken BOM'u kontrol et"
+msgstr "Ögeleri takarken BOM'u kontrol et"
#: common/setting/system.py:783
msgid "Installed stock items must exist in the BOM for the parent part"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "Stokta olmayan kalemlerin stok konumları arasında aktarılmasına izin ver"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Üretim Emri Referans Şablonu"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Üretim emri referans alanını üretmek için gerekli şablon"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "Sorumlu Sahip Gerektir"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "Her siparişe sorumlu bir yetkili atanmalıdır."
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "Aktif Parça Gerektirir"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "Pasif parçalarla üretim emri oluşturmayı engelle"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "Kilitli Parça Gerekli"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "Kilidi açılmış parçalarla üretim emri oluşturmayı engelle"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "Geçerli BOM gereklidir."
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "BOM henüz doğrulanmadan üretim emri oluşturmayı engelle"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "Kapalı Alt Siparişler Gerekli"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "Tüm alt emirler kapatılana kadar üretim emrini tamamlamayı engelle"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "Harici Üretim Emirleri"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "Harici üretim emri işlevselliğini etkinleştir"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr "Harici Üretim Emirlerini Gerekli Kıl"
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr "Harici bir tedarikçiden montajlı parçalar sipariş ederken harici bir üretim emri gerekli kıl"
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "Testler Geçene Kadar Engelle"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "Tüm gerekli testler geçene kadar üretim çıktılarını tamamlamayı engelle"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "İade Siparişlerini Etkinleştir"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Kullanıcı arayüzünde iade siparişi işlevselliğini etkinleştir"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Kullanıcı arayüzünde iade siparişi işlevselliğini etkinleştirin."
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "İade Sipariş referans alanı oluşturmak için gerekli desen"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Tamamlanan İade Siparişlerini Düzenle"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Tamamlandıktan sonra iade siparişlerini düzenlemeye izin ver"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Satış Siparişi Referans Şablonu"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Satış Siparişi referans alanını üretmek için gerekli şablon"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Satış Siparişi Varsayılan Gönderi"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Satış siparişleriyle varsayılan gönderi oluşturmayı etkinleştir"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Tamamlanmış Satış Siparişlerini Düzenle"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Gönderilen veya tamamlanan satış siparişlerini düzenlemeye izin ver"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "Kontrol Gerektiren Gönderi"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "Kalemler kontrol edilene dek gönderilerin tamamlanmasını engelle"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "Gönderilen Siparişleri Tamamlandı Olarak İmle"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "Gönderildi olarak işaretli satış siparişleri \"gönderildi\" durumu atlanarak otomatik olarak tamamlanacaktır"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr "Aktarım Emirlerini Etkinleştir"
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr "Kullanıcı arayüzünde aktarım emri işlevselliğini etkinleştir"
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr "Aktarım Emri Referans Deseni"
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr "Aktarım emri referans alanını üretmek için gereken desen"
-#: common/setting/system.py:947
-msgid "Block Incomplete Item Tests"
-msgstr "Tamamlanmamış Ürün Testlerini Engelle"
-
-#: common/setting/system.py:949
-msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
-msgstr "Gerekli ürün testleri tamamlanmamışsa, stok kalemlerinin satış siparişlerine tahsis edilmesini engelle"
-
#: common/setting/system.py:955
+msgid "Block Incomplete Item Tests"
+msgstr "Eksik Ürün Testlerini Engelle"
+
+#: common/setting/system.py:957
+msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
+msgstr "Gerekli ürün testleri eksik ise, stok kalemlerinin satış siparişlerine tahsis edilmesini engelle"
+
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Satın Alma Siparişi Referans Şablonu"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Satın Alma Siparişi referans alanını üretmek için gerekli şablon"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Tamamlanan Satın Alma Siparişlerini Düzenle"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Gönderildikten veya tamamlandıktan sonra satın alma siparişlerini düzenlemeye izin ver"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "Para Birimini Dönüştür"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "Stok alınırken kalem değerini temel para birimine dönüştür"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Satın Alma Siparişlerini Otomatik Tamamla"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "Tüm satırlar alındığında satın alma siparişini otomatikmen tamamlandı olarak işaretle"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Şifremi unuttum seçeneğini etkinleştir"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
-msgstr "Giriş yapma sayfasında şifremi unuttum işlevini etkinleştir"
+msgstr "Oturum açma sayfasında şifremi unuttum özelliğini etkinleştir"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Kayıt olmayı etkinleştir"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
-msgstr "Giriş yapma sayfalarında kullanıcılar için kendini kaydetme işlevini etkinleştir"
+msgstr "Oturum açma sayfalarında kullanıcılar için kendini kaydetme özelliğini etkinleştir"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "SSO Etkinleştir"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
-msgstr "Kullanıcı girişi sayfalarında SSO etkinleştir"
+msgstr "Oturum açma sayfalarında SSO etkinleştir"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "SSO ile kayıt olmayı etkinleştir"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
-msgstr "Giriş yapma sayfalarında kullanıcılar için SSO ile kendini kaydetmeyi etkinleştir"
+msgstr "Oturum açma sayfalarında kullanıcılar için SSO ile kendini kaydetmeyi etkinleştir"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "SSO grup eşitlemeyi etkinleştir"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "InvenTree gruplarını IdP tarafından sağlanan gruplar ile eşitlemeyi etkinleştir"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "SSO grup anahtarı"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "IdP tarafından sağlanan talep özniteliğinin adı"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "SSO grup haritası"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "SSO gruplarından yerel InvenTree gruplarına bir eşleme. Yerel grup yoksa, oluşturulacaktır."
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "SSO dışındaki grupları kaldır"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "IdP arka ucu tarafından olmayan, kullanıcıya atanmış grupların kaldırılıp kaldırılmayacağı. Bu ayarı etkisizleştirmek güvenlik sorunlarına neden olabilir"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "E-posta Gerekir"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Üyelik sırasında kullanıcının eposta sağlamasını gerektir"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "SSO kullanıcıları otomatik doldur"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Kullanıcı ayrıntılarını TOA hesabı verisinden otomatik olarak doldur"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Postayı iki kez gir"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Hesap oluştururken kullanıcıların postalarını iki kez girmelerini iste"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Şifreyi iki kez gir"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Hesap oluştururken kullanıcıların şifrelerini iki kez girmesini iste"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Alanlara izin ver"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Belirli alanlara hesap açmayı kısıtla (virgülle ayrılmış, @ ile başlayan)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Hesap oluştururken grup"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "Yeni kullanıcıların kayıt sırasında atanacağı grup. Eğer TOA grup eşitlemesi etkinse, yalnızca ıdP'den hiçbir grup atanamazsa bu grup ayarlanır."
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "ÇFKD'yi Zorunlu Kıl"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Kullanıcıların çok faktörlü kimlik doğrulamasını kullanması gerekmektedir."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr "Bu ayarı etkinleştirmek, tüm kullanıcıların çok faktörlü kimlik doğrulamayı ayarlamasını gerektirecektir. Tüm oturumlar hemen kapatılacaktır."
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Başlangıçta eklentileri kontrol et"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Başlangıçta tüm eklentilerin kurulmuş olduğunu kontrol et - konteyner ortamlarında etkinleştir"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Eklenti güncellemelerini kontrol et"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "Kurulu eklentiler için periyodik güncelleme kontrolünü etkinleştir"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "URL entegrasyonunu etkinleştir"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "URL yönlendirmesi eklemek için eklentileri etkinleştir"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Gezinti entegrasyonunu etkinleştir"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Eklentilerin gezintiye entegre edilmesini etkinleştir"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Uygulama entegrasyonunu etkinleştir"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Uygulamalar eklemek için eklentileri etkinleştir"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Zamanlama entegrasyonunu etkinleştir"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Zamanlanmış görevleri çalıştırmak için eklentileri etkinleştir"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Olay entegrasyonunu etkinleştir"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Eklentilerin olaylara yanıt verebilmesini etkinleştirin"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "Arayüz entegrasyonunu etkinleştir"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "Eklentilerin kullanıcı arayüzüne entegre olmasını etkinleştir"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "Posta entegrasyonunu etkinleştir"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "Eklentilerin giden/gelen postaları işlemesini etkinleştir"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "Proje kodlarını etkinleştir"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "Projeleri takip etmek için proje kodlarını etkinleştir"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr "Stok Sayımını Etkinleştir"
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "Geçmiş stok seviyelerini ve değerini kaydetme işlevini etkinleştir"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Harici Konumları Hariç Tut"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "Harici konumlardaki stok kalemlerini stok geçmişi hesaplamalarının dışında tut"
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Otomatik Stok Sayımı Periyodu"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr "Otomatik stok geçmişi kaydı arasındaki gün sayısı"
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr "Eski Stok Geçmişi Girdilerini Sil"
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr "Belirtilen gün sayısından daha eski stok geçmişi girdilerini sil"
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr "Stok Geçmişi Silme Aralığı"
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr "Stok geçmişi girdileri belirtilen gün sayısı sonrasında silinecektir"
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr "Eski Stok Takip Kayıtlarını Sil"
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr "Belirtilen gün sayısından daha eski stok takip kayıtlarını sil"
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr "Stok Geçmişi Silme Aralığı"
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr "Stok takip kayıtları belirtilen gün sayısı sonrasında silinecektir"
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Kullancıların tam isimlerini görüntüle"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Kullanıcı adı yerine kullanıcıların tam adlarını görüntüle"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "Kullanıcı Profillerini Göster"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "Kullanıcıların Profillerini kendi profil sayfalarında göster"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr "Haftanın başladığı gün"
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr "Takvimlerde görüntülemek için haftanın başlangıç günü"
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr "Pazar"
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr "Pazartesi"
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr "Salı"
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr "Çarşamba"
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr "Perşembe"
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr "Cuma"
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr "Cumartesi"
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr "Takvim Ufku"
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr "Takvim görünümlerinde görüntülenecek gelecek ayların sayısı"
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr "aylar"
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "Test İstasyon Verisini Etkinleştir"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "Test sonuçları için test istasyonundan veri toplamayı etkinleştir"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "Makine Pingini Etkinleştir"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "Durumlarını kontrol etmek için kayıtlı makinelerin periyodik ping görevini etkinleştir"
@@ -4128,49 +4140,49 @@ msgstr "En Son Seviyede Ögeleri Görüntüle"
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr "Alt ögesi olmayan konumlar veya kategoriler için alt düzeyler yerine otomatik olarak ögeleri/parçaları göster"
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "Tüm modeller"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "Ekli model türü sağlanamadı"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "Geçersiz ek modeli türü"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr "Dosya boyutu {max_size} MB maksimum yükleme sınırını aşmaktadır"
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr "Geçersiz dosya adı"
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "Minimum yer sayısı maksimum yer sayısından fazla olamaz"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "Maksimum yer sayısı minimum yer sayısından az olamaz"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Boş bir alan adına izin verilmez."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Geçersiz alan adı: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "Değer büyük harf olmalıdır"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "Değer geçerli bir değişken tanımlayıcısı olmalıdır"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "Tedarikçi Aktif"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Üretici"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Şirket"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "İletişim e-posta adresi"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "İletişim"
@@ -4297,7 +4309,7 @@ msgstr "Vergi Numarası"
msgid "Company Tax ID"
msgstr "Şirket Vergi Numarası"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Adres"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Adres bilgisine bağlantı (harici)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Üretici Parçası"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Üretici seçin"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "ÜPN"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Bağlantılı üretici parçası aynı temel parçayı referans almalıdır"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Tedarikçi"
@@ -4448,7 +4460,7 @@ msgstr "Tedarikçi"
msgid "Select supplier"
msgstr "Tedarikçi seçin"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Tedarikçi stok kodu"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Minimum ücret (örneğin stoklama ücreti)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Paketleme"
@@ -4533,7 +4545,7 @@ msgstr "Bu tedarikçi için kullanılan varsayılan para birimi"
msgid "Company Name"
msgstr "Şirket Adı"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Stokta"
@@ -4643,11 +4655,11 @@ msgstr "Bazı zorunlu alanlar eşleştirilmemiştir"
#: importer/models.py:413
msgid "Completed Row Count History"
-msgstr ""
+msgstr "Tamamlanan Satır Sayısı Geçmişi"
#: importer/models.py:416
msgid "Row Count History"
-msgstr ""
+msgstr "Satır Sayısı Geçmişi"
#: importer/models.py:439
msgid "ID"
@@ -4679,16 +4691,16 @@ msgstr "Alan hedef modelde bulunmuyor"
#: importer/models.py:545
msgid "Selected field is read-only"
-msgstr "Seçilen alan salt okunurdur"
+msgstr "Seçili alan salt okunurdur"
#: importer/models.py:551
msgid "Lookup field can only be set for related (foreign-key) fields"
-msgstr ""
+msgstr "Arama alanı yalnızca ilişkili (yabancı anahtar) alanlar için ayarlanabilir"
#: importer/models.py:559
#, python-brace-format
msgid "Invalid lookup field. Valid options are: {options}"
-msgstr ""
+msgstr "Geçersiz arama alanı. Geçerli seçenekler şunlardır: {options}"
#: importer/models.py:566 importer/models.py:653
msgid "Import Session"
@@ -4704,11 +4716,11 @@ msgstr "Sütun"
#: importer/models.py:578
msgid "Lookup Field"
-msgstr ""
+msgstr "Arama Alanı"
#: importer/models.py:580
msgid "Database field to use for foreign-key lookup. Leave blank for automatic lookup."
-msgstr ""
+msgstr "Yabancı anahtar araması için kullanılacak veritabanı alanı. Otomatik arama için boş bırakın."
#: importer/models.py:657
msgid "Row Index"
@@ -4722,13 +4734,13 @@ msgstr "Orijinal satır verisi"
msgid "Errors"
msgstr "Hatalar"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Geçerli"
#: importer/models.py:904
msgid "Multiple matches found for value - please ensure the value is unique, or select a specific lookup field"
-msgstr ""
+msgstr "Değer için birden fazla eşleşme bulundu – lütfen değerin benzersiz olduğundan emin olun veya belirli bir arama alanı seçin"
#: importer/models.py:965
msgid "ID is required for updating existing records."
@@ -4838,7 +4850,7 @@ msgstr "Her etiket için yazdırılacak kopya sayısı"
msgid "Connected"
msgstr "Bağlı"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Bilinmeyen"
@@ -4942,7 +4954,7 @@ msgstr "Özelliğin anahtarı"
msgid "Value of the property"
msgstr "Özelliğin değeri"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Grup"
@@ -4966,118 +4978,118 @@ msgstr "Maksimum İlerleme"
msgid "Maximum value for progress type, required if type=progress"
msgstr "İlerleme türünün maksimum değeri, tür=ilerleme ise gerekli"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Sipariş Referansı"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "Açık"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "Proje Kodu Var"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Oluşturan"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "Öncesinde Oluşturuldu"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "Sonrasında Oluşturuldu"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "Başlangıç Tarihi Var"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "Öncesi Başlangıç Tarihi"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "Sonrası Başlangıç Tarihi"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "Hedef Tarihi Var"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "Öncesi Hedef Tarih"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "Sonrası Hedef Tarih"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr "Daha önce güncellendi"
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr "Güncellendi (den sonra)"
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "Fiyatlandırılmış"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "Öncesinde Tamamlandı"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "Sonrasında Tamamlandı"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "Harici Üretim Emri"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Sipariş"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "Sipariş Tamamlandı"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Dahili Parça"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "Sipariş Bekliyor"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Tamamlandı"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "Sevkiyatı Var"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr "Sevkiyat bulunamadı"
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Satın Alma Siparişi"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Satın Alma Siparişi"
msgid "Sales Order"
msgstr "Satış Siparişi"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "İade Siparişi"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr "Aktarım Emri"
@@ -5121,7 +5133,7 @@ msgstr "Bu sipariş kilitli olduğundan değiştirilemez"
#: order/models.py:414
msgid "Contact does not match selected company"
-msgstr "İletişim bilgileri seçilen şirketle eşleşmiyor"
+msgstr "Kişi, seçili şirket ile eşleşmiyor"
#: order/models.py:421
msgid "Start date must be before target date"
@@ -5129,17 +5141,17 @@ msgstr "Başlangıç tarihi hedef tarihinden önce olmalıdır"
#: order/models.py:432
msgid "Address does not match selected company"
-msgstr "Adres bilgileri seçilen şirketle eşleşmiyor"
+msgstr "Adres, seçili şirket ile eşleşmiyor"
#: order/models.py:488
msgid "Order description (optional)"
msgstr "Açıklama (isteğe bağlı)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Bu sipariş için proje kodu seçin"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Harici sayfaya bağlantı"
@@ -5151,7 +5163,7 @@ msgstr "Başlangıç tarihi"
msgid "Scheduled start date for this order"
msgstr "Bu üretim emri için planlanan başlangıç tarihi"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Hedeflenen tarih"
@@ -5184,487 +5196,487 @@ msgstr "Bu sipariş için ilgili kişi"
msgid "Company address for this order"
msgstr "Bu sipariş için şirket adresi"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Sipariş referansı"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Durum"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Satın alma siparişi durumu"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Ürünlerin sipariş edilmekte olduğu şirket"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Tedarikçi Referansı"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Tedarikçi siparişi referans kodu"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "teslim alan"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Siparişin tamamlandığı tarih"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Hedef"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "Teslim alınan kalemler için varış yeri"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Parça tedarikçisi PO tedarikçisi ile eşleşmelidir"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Satır, satın alma siparişi ile eşleşmiyor"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "Satırda bağlantılı bir parça eksik"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Miktar pozitif bir sayı olmalıdır"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr "Sanal parçalara seri numaraları atanamaz"
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr "Her türlü stoka izin ver (seri numaralı veya seri numarasız)"
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr "Sadece seri numaralı stok"
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr "Sadece seri numarasız stok"
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Müşteri"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Ürünlerin satılmakta olduğu şirket"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "Satış siparişi durumu"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Müşteri Referansı "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Müşteri siparişi referans kodu"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Sevkiyat Tarihi"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "tarafından sevk edildi"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "Sipariş zaten tamamlandı"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "Sipariş zaten iptal edildi"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Yalnızca açık siparişler tamamlandı olarak işaretlenebilir"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
-msgstr "Tamamlanmamış sevkiyatlar olduğundan sipariş tamamlanamaz"
+msgstr "Eksik sevkiyatlar olduğundan sipariş tamamlanamaz"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
-msgstr "Tamamlanmamış tahsisatlar olduğundan sipariş tamamlanamaz"
+msgstr "Eksik tahsisler olduğu için sipariş tamamlanamıyor"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Tamamlanmamış satırlar olduğundan sipariş tamamlanamaz"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "Bu sipariş kilitli olduğundan değiştirilemez"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Kalem miktarı"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr "Satır Numarası"
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr "Bu ögenin satır numarası (isteğe bağlı)"
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Satır referansı"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Satır notları"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Bu satır için hedef tarih (siparişin hedef tarihini kullanmak için boş bırakın)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Satır açıklaması (isteğe bağlı)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Bu satır için ek bağlam"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Birim Fiyat"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "Satın Alma Siparişi Kalemi"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "Tedarikçi parçası tedarikçi ile eşleşmelidir"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "Üretim emri harici olarak işaretlenmelidir"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "Üretim emirleri yalnızca montaj parçalarına bağlanabilir"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "Üretim emri parçası satır parçası ile eşleşmelidir"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr "Montaj parçaları için harici bir üretim emri gereklidir"
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Tedarikçi parçası"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Teslim Alındı"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Teslim alınan miktar"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Alış Fiyatı"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Birim alış fiyatı"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "Bu kalem tarafından karşılanacak harici Üretim Emri"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "Ek Sipariş Kalemi"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "Satış Siparişi Kalemi"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Yalnızca satışa uygun parçalar bir satış siparişine atanabilir"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Satış Fiyatı"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Birim satış fiyatı"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Sevk edildi"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Sevk edilen miktar"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "Satış Siparişi Sevkiyatı"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "Sevk adresi müşteri ile eşleşmelidir"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "Bu sevkiyatın sevk adresi"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Sevkiyat tarihi"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Teslimat Tarihi"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Sevkiyatın teslimat tarihi"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Kontrol Eden"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Bu sevkiyatı kontrol eden kullanıcılar"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Sevkiyat"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Sevkiyat numarası"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Takip Numarası"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Sevkiyat takip numarası"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Fatura Numarası"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Fatura referans numarası"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Sevkiyat zaten sevk edildi"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Sevkiyatın tahsis edilen stok kalemleri bulunmuyor"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "Sevkiyat tamamlanmadan önce kontrol edilmelidir"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "Ek Sipariş Kalemi"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "Satış Siparişi Tahsisatı"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "Stok kalemi henüz atanmadı"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Farklı bir parçaya sahip satıra stok kalemi tahsis edilemez"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Parça içermeyen bir satıra stok tahsis edilemez"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar 1 olmalıdır"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Satış siparişi sevkiyatla eşleşmiyor"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Sevkiyat satış siparişiyle eşleşmiyor"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Satır"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Satış siparişinin sevkiyat referansı"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Kalem"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Tahsis edilecek stok kalemini seçin"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "İade Siparişi referansı"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Ürünlerin iade edildiği şirket"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "İade siparişi durumu"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "İade Siparişi Satırı"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "Stok kalemi belirtilmelidir"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "İade miktarı stok miktarını aşıyor"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "İade miktarı sıfırdan büyük olmalıdır"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "Seri numaralı stok kalemi için geçersiz miktar"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Müşteriden iade edilecek ürünü seçin"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Teslim Alma Tarihi"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr "Bu iade kaleminin teslim alındığı tarih"
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Sonuç"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Bu satırın sonucu"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Bu kalem için iade veya onarımla ilgili maliyet"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "Ek Sipariş Kalemi"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr "Aktarım Emri Referansı"
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr "Aktarım emri durumu"
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr "Aktarılan kalemlerin kaynağı"
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr "Aktarılan kalemlerin varış yeri"
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr "Stoku Tüket"
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr "Stokları hedef noktaya aktarmak yerine, tahsis edilen stok kaleminden aktarılan miktarı çıkararak \"tüket\""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr "Hedef konum belirlenene kadar emir tamamlanamaz"
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr "Tümüyle tahsis edilene kadar emir tamamlanamaz"
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr "Emir Satırını Aktar"
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr "aktarıldı"
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr "aktarılan miktar"
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr "Transfer Emri Tahsisatı"
@@ -5692,7 +5704,7 @@ msgstr "Ek Kalemleri Kopyala"
msgid "Copy extra line items from the original order"
msgstr "Orijinal siparişten ek kalemleri kopyala"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Parametreleri Kopyala"
@@ -5714,11 +5726,11 @@ msgstr "Tamamlanan Satırlar"
#: order/serializers.py:132
msgid "Custom Status Key"
-msgstr ""
+msgstr "Özel Durum Anahtarı"
#: order/serializers.py:133
msgid "Update order status to a custom value for this logical value"
-msgstr ""
+msgstr "Bu mantıksal değer için sipariş durumunu özel bir değere güncelle"
#: order/serializers.py:199
msgid "Duplicate Order"
@@ -5730,15 +5742,15 @@ msgstr "Bu siparişin kopyasını oluşturmak için seçenekleri belirtin"
#: order/serializers.py:221
msgid "Custom status key must be an integer"
-msgstr ""
+msgstr "Özel durum anahtarı bir tamsayı olmalıdır"
#: order/serializers.py:228
msgid "Invalid custom status key"
-msgstr ""
+msgstr "Geçersiz özel durum anahtarı"
#: order/serializers.py:231
msgid "Invalid custom status key for this order status"
-msgstr ""
+msgstr "Bu sipariş durumu için geçersiz özel durum anahtarı"
#: order/serializers.py:305
msgid "Invalid order ID"
@@ -5784,11 +5796,11 @@ msgstr "Kalemleri Birleştir"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "Aynı parça, hedef ve hedef tarihe sahip kalemleri tek bir satırda birleştir"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "SKU"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Dahili Parça Numarası"
@@ -5825,13 +5837,13 @@ msgid "Enter batch code for incoming stock items"
msgstr "Gelen stok kalemleri için parti numarası girin"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
-msgstr "Son Kullanma Tarihi"
+msgstr "Raf Ömrü Tarihi"
#: order/serializers.py:911
msgid "Enter expiry date for incoming stock items"
-msgstr "Gelen stok kalemleri için son kullanma tarihi girin"
+msgstr "Gelen stok kalemleri için raf ömrü tarihi girin"
#: order/serializers.py:919
msgid "Enter serial numbers for incoming stock items"
@@ -5938,7 +5950,7 @@ msgstr "Stok kalemlerini bu konumdan hariç tut"
#: order/serializers.py:2082
msgid "Assign allocations to this shipment"
-msgstr "Tahsisatları bu sevkiyata ata"
+msgstr "Tahsisleri bu sevkiyata ata"
#: order/serializers.py:2089
msgid "Allow stock to be taken from multiple locations to fulfil a single line item"
@@ -5950,7 +5962,7 @@ msgstr "Seri Numaralı Stok"
#: order/serializers.py:2105
msgid "Control whether serialized stock items are included in auto-allocation"
-msgstr "Otomatik tahsisata seri numaralı stok kalemlerinin dahil edilip edilmediğini kontrol et"
+msgstr "Otomatik tahsise seri numaralı stok kalemlerinin dahil edilip edilmediğini kontrol et"
#: order/serializers.py:2116
msgid "Limit allocation to these line items (leave blank to allocate all lines)"
@@ -5986,11 +5998,11 @@ msgstr "Satır para birimi"
#: order/serializers.py:2576
msgid "Allow order to complete with incomplete allocations"
-msgstr "Üretimin tamamlanmamış tahsisatlarla tamamlanmasına izin ver"
+msgstr "Üretimin eksik tahsisler ile tamamlanmasına izin ver"
#: order/serializers.py:2586
msgid "Order has incomplete allocations"
-msgstr "Üretimin tamamlanmamış tahsisatları var"
+msgstr "Üretimin eksik tahsisleri var"
#: order/status_codes.py:17 order/status_codes.py:54 stock/status_codes.py:16
msgid "Lost"
@@ -6056,123 +6068,131 @@ msgstr "Gecikmiş İade Siparişi"
msgid "Return order {ro} is now overdue"
msgstr "İade siparişi {ro} şimdi gecikti"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "Yıldızlı"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "Yıldızlı kategorilere göre filtrele"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Derinlik"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "Kategori derinliğine göre filtrele"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "Üst Seviye"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "Üst seviye kategorilere göre filtrele"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "Kademeli"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "Filtrelenmiş sonuçlara alt kategorileri dahil et"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Üst"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Üst kategoriye göre filtrele"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "Belirtilen kategorideki alt kategorileri hariç tut"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "Sonuçları Olanlar"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "Varyant mı"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "Revizyon mu"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "Revizyonu Olanlar"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "BOM Geçerli"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "Kategorileri Kademele"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "Etkin ise, verilen kategorinin alt kategorilerindeki ögeleri dahil et"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "Sayısal kategori ID veya 'null' sabitine göre filtrele"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr "Montaj parçası etkin"
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr "Montaj parçası takip edilebilir"
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "Montaj test edilebilir"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr "Montaj parçası kilitlidir"
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr "Bileşen etkin"
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr "Bileşen takip edilebilir"
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "Bileşen test edilebilir"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr "Bileşen bir montaj parçası"
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr "Bileşen sanal"
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr "Stok mevcut"
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "Kullanımlar"
@@ -6213,7 +6233,7 @@ msgstr "Bu kategoridaki parçalar için varsayılan anahtar kelimeler"
msgid "Icon"
msgstr "Simge"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Simge (isteğe bağlı)"
@@ -6349,7 +6369,7 @@ msgstr "Arama sonuçlarında görünürlüğü artırmak için parça anahtar ke
msgid "Part category"
msgstr "Parça kategorisi"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "DPN"
@@ -6358,7 +6378,7 @@ msgstr "DPN"
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Revizyon"
@@ -6376,13 +6396,13 @@ msgstr "Bu kalem normalde nerede depolanır?"
#: part/models.py:1227
msgid "Default Expiry"
-msgstr "Varsayılan Son Kullanma"
+msgstr "Varsayılan Raf Ömrü"
#: part/models.py:1228
msgid "Expiry time (in days) for stock items of this part"
-msgstr "Bu parçanın stok kalemleri için son kullanma süresi (gün olarak)"
+msgstr "Bu parçanın stok kalemleri için raf ömrü süresi (gün olarak)"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Minimum Stok"
@@ -6390,7 +6410,7 @@ msgstr "Minimum Stok"
msgid "Minimum allowed stock level"
msgstr "İzin verilen minimum stok düzeyi"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr "Maksimum Stok"
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Sayım anındaki toplam mevcut stok"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Tarih"
@@ -6759,7 +6779,7 @@ msgstr "Alt parça"
msgid "Select part to be used in BOM"
msgstr "BOM'da kullanılacak parçayı seçin"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr "Miktar"
@@ -6911,351 +6931,351 @@ msgstr "Üst Kategori"
msgid "Parent part category"
msgstr "Üst parça kategorisi"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Alt kategoriler"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Sonuçlar"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "Bu şablon ile ilişkilendirilmiş sonuç sayısı"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Bu stok kaleminin alış para birimi"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "Dosya bir görsel değil"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Orijinal Parça"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Kopyalanacak orijinal parçayı seçin"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Görseli Kopyala"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Orijinal parçadan görseli kopyala"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "BOM'u Kopyala"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Orijinal parçadan ürün ağacını kopyala"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Orijinal parçadan parametreleri kopyala"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Notları Kopyala"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Orijinal parçadan notları kopyala"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "Testleri Kopyala"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "Orijinal parçadan test şablonlarını kopyala"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Başlangıç Stok Miktarı"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Bu parça için başlangıç stok miktarını belirtin. Miktar sıfır ise, stok eklenmez."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Başlangıç Stok Konumu"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Bu parça için başlangıç stok konumunu belirtin"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Tedarikçiyi seçin (veya atlamak için boş bırakın)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Üreticiyi seçin (veya atlamak için boş bırakın)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Üretici parça numarası"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
-msgstr "Seçilen şirket geçerli bir tedarikçi değildir"
-
-#: part/serializers.py:541
-msgid "Selected company is not a valid manufacturer"
-msgstr "Seçilen şirket geçerli bir üretici değildir"
+msgstr "Seçili şirket geçerli bir tedarikçi değildir"
#: part/serializers.py:552
+msgid "Selected company is not a valid manufacturer"
+msgstr "Seçili şirket geçerli bir üretici değildir"
+
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Bu MPN ile eşleşen üretici parçası zaten mevcut"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Bu SKU ile tedarikçi parçası zaten mevcut"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Kategori Adı"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Üretiliyor"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "Bu parçanın şu anda üretimde olan miktarı"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "Bu parçanın üretilmesi planlanan açık miktarı"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Stok Kalemleri"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "Revizyonlar"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Toplam Stok"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "Tahsis Edilmemiş Stok"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "Varyant Stoku"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Parçanın Kopyasını Oluştur"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Başlangıç verisini diğer parçadan kopyala"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Başlangıç Stoku"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Başlangıç stok miktarı ile parça oluştur"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Tedarikçi Bilgileri"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Bu parça için ilk tedarikçi bilgilerini ekleyin"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Kategori Parametrelerini Kopyala"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
-msgstr "Seçilen parça kategorisinden parametre şablonlarını kopyala"
+msgstr "Parametre şablonlarını seçili parça kategorisinden kopyala"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Mevcut Görsel"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Mevcut parça görselinin dosya adı"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Görsel dosyası mevcut değil"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Tüm ürün ağacını doğrula"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Üretebilir Miktar"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "Üretim Emirleri için Gerekli"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "Üretim Emirlerine Tahsis Edildi"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "Satış Siparişleri için Gerekli"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "Satış Siparişlerine Tahsis Edildi"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr "Parça DPN"
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr "Parça Açıklaması"
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "Stok sayımı bilgisi oluşturmak üzere bir parça (ve varsa varyantlarını) seçin"
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "Kategorideki (ve alt kategorilerdeki) tüm parçaları dahil etmek için bir kategori seçin"
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "Konumda (ve alt konumlarda) stoğu bulunan tüm parçaları dahil etmek için bir konum seçin"
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr "Stok Sayımı Kayıtları Oluşturun"
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
-msgstr "Seçili parçalar için stok sayımı girdilerini kaydedin"
+msgstr "Seçili parçalar için stok sayımı girdilerini kaydet"
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr "Rapor Oluştur"
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
-msgstr "Seçili parçalar için stok sayımı raporu oluşturun"
+msgstr "Seçili parçalar için bir stok sayımı raporu oluştur"
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Minimum Fiyat"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Minimum fiyat için hesaplanan değeri geçersiz kıl"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Minimum fiyat para birimi"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Maksimum Fiyat"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Maksimum fiyat için hesaplanan değeri geçersiz kıl"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Maksimum fiyat para birimi"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Güncelle"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Bu parçanın fiyatlandırmasını güncelle"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Sağlanan para birimlerinden {default_currency} para birimine dönüştürülemedi"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Minimum fiyat maksimum fiyattan yüksek olamaz"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Maksimum fiyat minimum fiyattan düşük olamaz"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr "Bu öge için gereken miktar (birim içerebilir)"
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "Üst montajı seçin"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "Bileşeni seçin"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr "Geçersiz miktar biçimi"
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "BOM'u kopyalanacak parçayı seçin"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Mevcut Verileri Temizle"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Kopyalamadan önce mevcut BOM kalemlerini temizle"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Devralınanı Dahil Et"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Şablon parçalardan devralınan BOM kalemlerini dahil et"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Geçersiz Satırları Atla"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Geçersiz satırları atlamak için bu seçeneği etkinleştir"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Muadil Parçaları Kopyala"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "BOM kalemlerinin kopyasını oluştururken muadil parçaları kopyala"
@@ -7274,16 +7294,16 @@ msgstr "Eskimiş stok bildirimi"
#: part/tasks.py:78
msgid "You have 1 stock item approaching its expiry date"
-msgstr "Geçerlilik tarihi yaklaşan 1 adet stok kaleminiz var"
+msgstr "Raf ömrünü doldurmak üzere olan 1 adet stok kaleminiz var"
#: part/tasks.py:80
#, python-brace-format
msgid "You have {item_count} stock items approaching their expiry dates"
-msgstr "Geçerlilik tarihleri yaklaşan {item_count} adet stok kaleminiz var"
+msgstr "Raf ömrünü doldurmak üzere olan {item_count} adet stok kaleminiz var"
#: part/tasks.py:89
msgid "No expiry date"
-msgstr "Geçerlilik tarihi yok"
+msgstr "Raf ömrü yok"
#: part/tasks.py:96
msgid "Expired {abs(days_diff)} days ago"
@@ -7326,91 +7346,91 @@ msgstr "İşlem belirtilmedi"
msgid "No matching action found"
msgstr "Eşleşen eylem bulunamadı"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Barkod verisi için eşleşme bulunamadı"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Barkod verisi için eşleşme bulundu"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "Model desteklenmiyor"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "Model örneği bulunamadı"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Barkod mevcut kalemle eşleşiyor"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Eşleşen parça verisi bulunamadı"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Eşleşen tedarikçi parçası verisi bulunamadı"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Birden çok eşleşen tedarikçi parçası bulundu"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "Barkod verisi için eşleşen eklenti bulunamadı"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Eşleşen tedarikçi parçası"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Ürün kalemi zaten teslim alındı"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr "Satın alma siparişi bulundu\\rEşleşen Tedarikçi Parçası Yok"
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr "Tedarikçi Parçası Bulundu\\rEşleşen Satın Alma Siparişi Yok"
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "Tedarikçi barkodu için uygun eklenti bulunamadı"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "Birden çok eşleşen satır bulundu"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "Eşleşen satır bulunamadı"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "Satış siparişi sağlanmadı"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "Barkod mevcut bir stok kalemiyle eşleşmiyor"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "Stok kalemi satır kalemiyle eşleşmiyor"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Mevcut stok yetersiz"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "Stok kalemi satış siparişine tahsis edilmiştir"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Yetersiz bilgi"
@@ -7992,7 +8012,7 @@ msgstr "Kenarlık"
msgid "Print a border around each label"
msgstr "Her etiketin etrafına kenarlık ekle"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Yatay"
@@ -8072,77 +8092,77 @@ msgstr "TME barkodları taraması için destek sağlar"
msgid "The Supplier which acts as 'TME'"
msgstr "'TME' rolünü üstlenen tedarikçi"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr "Eklentileri yalnızca süper kullanıcı hesapları yönetebilir"
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "Eklenti kurulumu devre dışı bırakıldı"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr "Kurulum için bir paket adı veya URL belirtilmemiştir"
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr "Paket adı veya URL içinde geçersiz karakterler"
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Eklenti kurulumu başarılı"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Eklenti {path} yoluna kuruldu"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "Eklenti kayıt defterinde bulunamadı"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "Eklenti paketlenmiş bir eklenti değildir"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "Eklenti paketi adı bulunamadı"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "Eklentileri yalnızca yetkili personel yönetebilir"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "Eklenti kaldırma devre dışı bırakıldı"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "Bu eklenti şu an aktif olduğundan kaldırılamaz"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr "Eklenti zorunlu olduğu için kaldırılamaz"
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr "Eklenti örnek bir eklenti olduğu için kaldırılamaz"
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr "Eklenti yerleşik bir eklenti olduğu için kaldırılamaz"
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "Eklenti kurulu değil"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "Eklenti kurulumu bulunamadı"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "Eklenti başarıyla kaldırıldı"
@@ -8194,21 +8214,21 @@ msgstr "Paket Eklenti"
msgid "Plugin"
msgstr "Eklenti"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Yazar bulunamadı"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "'{p}' eklentisi, şu anki InvenTree sürümü {v} ile uyumlu değildir"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Eklenti en az {v} sürümünü gerektirir"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Eklenti en fazla {v} sürümünü gerektirir"
@@ -8481,136 +8501,136 @@ msgstr "Yasal"
msgid "Letter"
msgstr "Harf"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "Aynı isimde bir şablon zaten mevcut"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Şablon adı"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "Şablon açıklaması"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "Revizyon numarası (otomatik artar)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "Yazdırmada Modele Ekle"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "Yazdırırken rapor çıktısını bağlantılı model örneğine ek olarak kaydet"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Dosya Adı Deseni"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "Dosya adları oluşturmak için desen"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "Şablon etkinleştirildi"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "Şablon için hedef model türü"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Filtreler"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "Şablon sorgu filtreleri (virgülle ayrılmış anahtar=değer çiftleri listesi)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "Şablon dosyası"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "PDF raporları için sayfa boyutu"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Raporu yatay yönde işle"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "Birleştir"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr "Seçili ögeler için tek bir rapor oluştur"
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "{self.name} şablonundan oluşturulan rapor"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr "Şablon sözdizimi hatası"
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr "Rapor işleme hatası"
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "Rapor oluşturma hatası"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr "Rapor çıktılarını birleştirme hatası"
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Genişlik [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Etiket genişliği mm olarak belirtilmeli"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Yükseklik [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Etiket yüksekliği mm olarak belirtilmeli"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "Etiket yazdırma hatası"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Parçacık"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Rapor parçacık dosyası"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Parçacık dosyası açıklaması"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Kaynak Dosyası"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Rapor kaynak dosyası"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Kaynak dosyası açıklaması"
@@ -8766,200 +8786,200 @@ msgstr "Sonuç yok"
msgid "Transferred"
msgstr "Aktarıldı"
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr "Geçersiz ortam dosya yolu"
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr "Geçersiz statik dosya yolu"
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr "Varlık dosyası bulunamadı"
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Görsel dosyası bulunumadı"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr "Görüntü dosyası belirtilmedi"
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "part_image etiketi bir parça örneği gerektirir"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "company_image etiketi bir şirket örneği gerektirir"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "Konum derinliğine göre filtrele"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "Üst seviye konumlara göre filtrele"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "Filtrelenmiş sonuçlara alt konumları dahil et"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "Üst Konum"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "Üst konuma göre filtrele"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "Parça adı (büyük/küçük harf duyarlı değildir)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "Parça adı şunu içerir (büyük/küçük harf duyarlı değildir)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "Parça adı (regex)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "Parça IPN (büyük/küçük harf duyarlı değildir)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "Parça IPN şunu içerir (büyük/küçük harf duyarlı değildir)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "Parça IPN (regex)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "Minimum stok"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "Maksimum stok"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Durum Kodu"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Harici Konum"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "Üretim Emrine göre Tüketilenler"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
-msgstr "Başka bir stok kalemine bağlı"
+msgstr "Başka bir stok kalemine takılı"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Parça Ağacı"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "Daha önce güncellendi"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "Güncellendi (den sonra)"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "Stok Sayımı (-dan önce)"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "Stok Sayımı (-dan sonra)"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr "Stok Sayım Tarihi Olanlar"
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
-msgstr "Son kullanma tarihi öncesi"
+msgstr "Raf ömrü şu tarihten önce"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
-msgstr "Son kullanma tarihi sonrası"
+msgstr "Raf ömrü şu tarihten sonra"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Bozuk"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr "Bu stok kalemini ve bağlı tüm alt kalemleri hariç tutmak için bir PK girin"
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr "Konumları alt konumlara uygula"
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr "Açıksa belirtilen konumun alt konumlarındaki öğeleri de dahil eder"
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr "Sayısal konum ID'si veya \"null\" değeriyle filtreleyin"
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Miktar gereklidir"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Geçerli bir parça girilmelidir"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "Belirtilen tedarikçi parçası bulunamadı"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "Tedarikçi parçası için paket boyutu tanımlanmış, ancak ‘use_pack_size’ seçeneği etkin değil"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Takibi olmayan bir parça için seri numarası verilemez"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr "Takılıyı Dahil Et"
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr "Aktifse verilen stok kaleminin altına takılı öğelerin test sonuçları da dahil edilir"
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr "Sayısal Stok Kalemi ID’sine göre Filtrele"
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr "Belirtilen ID {id} ile bir stok kalemi bulunamadı"
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr "Varyantları Dahil Et"
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr "(-den sonra) sil"
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr "Önce"
@@ -8995,7 +9015,7 @@ msgstr "Sahibi Seçin"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Stok kalemleri yapısal stok konumlarına doğrudan yerleştirilemez; ancak alt konumlara yerleştirilebilir."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Harici"
@@ -9033,7 +9053,7 @@ msgstr "Önce en büyük miktar"
#: stock/models.py:416
msgid "Soonest expiry date first"
-msgstr "Önce en yakın son kullanma tarihi"
+msgstr "Önce en yakın raf ömrü"
#: stock/models.py:559
msgid "Serialized stock items cannot be deleted"
@@ -9101,7 +9121,7 @@ msgstr "Bu stok kalemiyle eşleşen bir tedarikçi parçası seçin"
msgid "Where is this stock item located?"
msgstr "Bu stok kalemi nerede bulunur?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Bu stok kaleminin ambalajı şu şekilde saklanmaktadır"
@@ -9117,7 +9137,7 @@ msgstr "Bu öge başka bir ögeye takılı mı?"
msgid "Serial number for this item"
msgstr "Bu öge için seri numarası"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Bu stok kalemine ait parti kodu"
@@ -9155,7 +9175,7 @@ msgstr "Hedef satış siparişi"
#: stock/models.py:1214
msgid "Expiry date for stock item. Stock will be considered expired after this date"
-msgstr "Stok kalemi için son kullanma tarihi. Bu tarihten sonra stok süresi dolmuş kabul edilir"
+msgstr "Stok kalemi için raf ömrü tarihi. Bu tarihten sonra stok raf ömrünü doldurmuş kabul edilir"
#: stock/models.py:1234
msgid "Date that this stock item was created"
@@ -9206,7 +9226,7 @@ msgstr "Miktar seri numaları ile eşleşmiyor"
msgid "Cannot assign stock to structural location"
msgstr "Stok, yapısal bir konuma atanamaz"
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "Test şablonu mevcut değil"
@@ -9220,13 +9240,13 @@ msgstr "Stok kalemi başka bir stok kalemine takılıdır"
#: stock/models.py:2166
msgid "Stock item contains other items"
-msgstr "Bu öge, başka ögeler de içeriyor"
+msgstr "Stok kalemi başka kalemleri de içermektedir"
#: stock/models.py:2169
msgid "Stock item has been assigned to a customer"
msgstr "Stok kalemi bir müşteriye atanmıştır"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Stok kalemi şu anda üretim aşamasındadır"
@@ -9234,7 +9254,7 @@ msgstr "Stok kalemi şu anda üretim aşamasındadır"
msgid "Serialized stock cannot be merged"
msgstr "Seri numaralı stok birleştirilemez"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Yinelenen stok kalemleri"
@@ -9250,71 +9270,71 @@ msgstr "Stok kalemleri aynı tedarikçi parçasını ifade etmelidir"
msgid "Stock status codes must match"
msgstr "Stok durum kodları eşleşmelidir"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "Stok Kalemi Takibi"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Giriş notları"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "Stok Kalemi Test Sonucu"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Bu test için değer sağlanmalıdır"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Bu test için dosya eki yüklenmelidir"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "Bu tet için geçersiz değer"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Test sonucu"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Test çıktı değeri"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Test sonucu eki"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Test notları"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "Test istasyonu"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "Testin gerçekleştirildiği test istasyonunun tanımlayıcısı"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "Başladı"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "Test başlangıcı zaman damgası"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "Bitti"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "Test bitişi zaman damgası"
@@ -9398,7 +9418,7 @@ msgstr "Yeni kalemler için seri numaraları gir"
msgid "Supplier Part Number"
msgstr "Tedarikçi Parça Numarası"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Süresi dolmuş"
@@ -9428,8 +9448,8 @@ msgstr "Stok kalemi belirtilmedi"
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Miktar, mevcut stok miktarını ({q}) aşmamalıdır"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Hedef stok konumu"
@@ -9447,7 +9467,7 @@ msgstr "Takılacak stok kalemini seçin"
#: stock/serializers.py:840
msgid "Quantity to Install"
-msgstr "Miktar"
+msgstr "Takılacak Miktar"
#: stock/serializers.py:841
msgid "Enter the quantity of items to install"
@@ -9467,7 +9487,7 @@ msgstr "Stok kalemi mevcut değil"
#: stock/serializers.py:873
msgid "Selected part is not in the Bill of Materials"
-msgstr "Seçilen parça malzeme listesinde bulunamadı"
+msgstr "Seçili parça ürün ağacında bulunamadı"
#: stock/serializers.py:886
msgid "Quantity to install must not exceed available quantity"
@@ -9483,7 +9503,7 @@ msgstr "Stok kaleminin dönüştürüleceği parçayı seçin"
#: stock/serializers.py:972
msgid "Selected part is not a valid option for conversion"
-msgstr "Seçilen parça dönüştürülmeye uygun değil"
+msgstr "Seçili parça dönüştürme için geçerli bir seçenek değil"
#: stock/serializers.py:989
msgid "Cannot convert stock item with assigned SupplierPart"
@@ -9501,127 +9521,131 @@ msgstr "Durumu değiştirilecek stok kalemlerini seçin"
msgid "No stock items selected"
msgstr "Hiçbir stok kalemi seçilmedi"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Alt konumlar"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr "Stok Kalemlerini Sil"
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr "Bu konumda barındırılan tüm stok kalemlerini sil"
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr "Alt Konumları Sil"
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr "Bu konumda barındırılan tüm alt konumları sil"
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "Üst stok konumu"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Parça satılabilir olmalıdır"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "Ürün bir satış siparişine tahsis edilmiştir"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr "Kalem, bir transfer emrine tahsis edilmiştir"
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Ürün bir üretim emrine tahsis edilmiştir"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Stok kalemlerini atamak için müşteri"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
-msgstr "Seçilen şirket bir müşteri değil"
+msgstr "Seçili şirket bir müşteri değil"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Stok tahsis notları"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Bir stok kalemleri listesi girilmelidir"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Stok birleştirme notları"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Farklı tedarikçilere izin ver"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Farklı tedarikçi parçalarına sahip stokları birleştirmeye izin ver"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Farklı durumlara sahip kalemlere izin ver"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Farklı durum kodlarına sahip stokları birleştirmeye izin ver"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "En az iki stok kalemi girilmelidir"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "Değişiklik Yok"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Stok Kalemi birincil anahtar (PK) değeri"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "Stok kalemi mevcut stokta yok"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr "Stok kalemi zaten stokta"
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr "Miktar negatif olamaz"
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Stok aktarım notları"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr "Sayılan kalemler için stok konumunu belirle (isteğe bağlı)"
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr "Mevcut stokla birleştir"
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Stok aktarım notları"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr "Sayılan kalemler için stok konumunu belirle (isteğe bağlı)"
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr "Mümkünse iade edilen ürünleri mevcut stoklarla birleştir"
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "Sıradaki Seri Numarası"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "Önceki Seri Numarası"
@@ -9775,7 +9799,7 @@ msgstr "Kimlik Doğrulaması Başarısız"
#: templates/403_csrf.html:12
msgid "You have been logged out from InvenTree."
-msgstr "InvenTree hesabınızdan çıkış yaptınız."
+msgstr "InvenTree oturumunuzu kapattınız."
#: templates/404.html:6 templates/404.html:10
msgid "Page Not Found"
@@ -9889,11 +9913,11 @@ msgstr "Bu e-postayı almanızın nedeni, bu parçaya veya parçanın dahil oldu
#: templates/email/stale_stock_notification.html:10
msgid "The following stock items are approaching their expiry dates:"
-msgstr "Aşağıdaki stok kalemlerinin son kullanma tarihleri yaklaşıyor:"
+msgstr "Aşağıdaki stok kalemlerinin raf ömrü dolmak üzere:"
#: templates/email/stale_stock_notification.html:23
msgid "Days Until Expiry"
-msgstr "Son Kullanmaya Kalan Gün"
+msgstr "Raf Ömrü Bitimine Kalan Günler"
#: templates/email/stale_stock_notification.html:57
msgid "You are receiving this email because you are subscribed to notifications for these parts"
@@ -9919,7 +9943,7 @@ msgstr "Yetkiler"
msgid "Important dates"
msgstr "Önemli tarihler"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Anahtar geçerliliği iptal edildi"
@@ -9927,163 +9951,163 @@ msgstr "Anahtar geçerliliği iptal edildi"
msgid "Token has expired"
msgstr "Anahtarın süresi doldu"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API Anahtarı"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API Anahtarları"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Anahtar Adı"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Özel anahtar adı"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
-msgstr "Anahtarın son kullanma tarihi"
+msgstr "Anahtar geçerlilik tarihi"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Son Görülme"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Anahtarın en son kullanıldığı tarih"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "İptal Edildi"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "İzinleri ayarla"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Görünüm"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Parçayı görüntüleme izni"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Ekle"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Parça ekleme izni"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Değiştir"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Parçaları düzenleme izni"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Sil"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Parçaları silme izni"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "Bot"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "Dahili"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "Konuk"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "Dil"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "Kullanıcının tercih ettiği dil"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "Tema"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "JSON formatında web kullanıcı arayüzü ayarları - lütfen manuel olarak düzenlemeyin!"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "Kartlar"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "JSON formatında pano kartları ayarları - lütfen manuel olarak düzenlemeyin!"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "Görünen Ad"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "Kullanıcının görünen adı"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "Konumu"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "Ana unvanı veya pozisyonu"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "Kullanıcı durum mesajı"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "Kullanıcı konum bilgisi"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "Kullanıcı, sistemi aktif kullanıyor"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "Kullanıcının tercih edilen iletişim bilgileri"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "Kullanıcı Türü"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "Bu, hangi tür kullanıcı?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "Organizasyon"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "Kullanıcının ana organizasyonu/ilişkisi"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "Birincil Grup"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "Kullanıcının birincil grubu"
@@ -10105,7 +10129,7 @@ msgstr "Satış Siparişleri"
#: users/ruleset.py:37
msgid "Return Orders"
-msgstr "İade Emirleri"
+msgstr "İade Siparişleri"
#: users/ruleset.py:38
msgid "Transfer Orders"
@@ -10169,11 +10193,11 @@ msgstr "Bu alanı sadece bir yönetici değiştirebilir"
#: users/serializers.py:379
msgid "Password"
-msgstr "Parola"
+msgstr "Şifre"
#: users/serializers.py:380
msgid "Password for the user"
-msgstr "Kullanıcının parolası"
+msgstr "Kullanıcı için şifre"
#: users/serializers.py:386
msgid "Override warning"
@@ -10201,7 +10225,7 @@ msgstr "Kullanıcı hesabınız oluşturulmuştur."
#: users/serializers.py:491
msgid "Please use the password reset function to login"
-msgstr "Giriş yapmak için lütfen şifre sıfırlama fonksiyonunu kullanınız"
+msgstr "Oturum açmak için lütfen şifre sıfırlama özelliğini kullanın"
#: users/serializers.py:497
msgid "Welcome to InvenTree"
diff --git a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po
index fd63c74624..195114c9cf 100644
--- a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Language: uk_UA\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "Кінцева точка API не знайдена"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "Сутності необхідно надати списком"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "Надано неправильний список сутностей"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "Немає сутностей що відповідають наданим критеріям"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr ""
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "У користувача немає дозволу на перегляд цієї моделі"
@@ -65,11 +65,11 @@ msgstr "Підтвердження адреси електронної пошт
msgid "You must type the same email each time."
msgstr "Ви повинні використовувати щоразу однаковий email."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Вказана основна адреса електронної пошти недійсна."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Наданий домен електронної пошти не затверджено."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Не вдалося перетворити {original} на {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Невірна кількість"
@@ -105,22 +105,22 @@ msgstr "Введіть дату"
msgid "Invalid decimal value"
msgstr "Неправильне десяткове значення"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Нотатки"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Значення '{name}' не відповідає шаблону формату"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Надане значення не відповідає обов'язковому шаблону: "
@@ -164,51 +164,51 @@ msgstr "Видаліть HTML тег з цього значення"
msgid "Data contains prohibited markdown content"
msgstr "Дані містять заборонений вміст у форматі Markdown"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Помилка підключення"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Сервер відправив некоректний код статусу"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Відбулося виключення"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Сервер повернув невірне значення Content-Length"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Розмір зображення занадто великий"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Розмір зображення перевищує максимально дозволений розмір"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Віддалений сервер повернув пусту відповідь"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -220,117 +220,121 @@ msgstr "Авторизуватися в додатку"
msgid "Email"
msgstr "Електронна пошта"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "Необхідно увімкнути двофакторну автентифікацію, перед тим як робити будь-що інше."
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr ""
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr ""
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr ""
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr ""
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr ""
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr ""
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr ""
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr ""
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr ""
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Назва"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Опис"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Опис (опціонально)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Шлях"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr ""
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Примітки в Markdown (опціонально)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr ""
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr ""
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr ""
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr ""
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr ""
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Помилка сервера"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr ""
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr ""
msgid "Currency"
msgstr ""
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr ""
@@ -521,11 +525,11 @@ msgstr "Китайська (спрощена)"
msgid "Chinese (Traditional)"
msgstr "Китайська (Традиційна)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr ""
msgid "Not a valid currency code"
msgstr ""
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr ""
@@ -546,23 +550,23 @@ msgstr ""
msgid "Parent Build"
msgstr ""
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "Деталь"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr ""
@@ -593,7 +597,7 @@ msgstr ""
msgid "Ancestor Build"
msgstr ""
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr ""
@@ -601,11 +605,11 @@ msgstr ""
msgid "Assigned To"
msgstr ""
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr ""
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Розхідний матеріал"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr ""
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Збірка"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr ""
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Тестуємо"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr ""
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr ""
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Доступно"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr ""
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr ""
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Місце"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr ""
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr ""
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr ""
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr ""
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr ""
@@ -883,8 +887,8 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr ""
@@ -900,7 +904,7 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr ""
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr ""
@@ -962,9 +966,9 @@ msgstr ""
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr ""
@@ -999,7 +1003,7 @@ msgstr ""
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr ""
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr ""
@@ -1057,8 +1061,8 @@ msgstr ""
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr ""
@@ -1082,7 +1086,7 @@ msgstr ""
msgid "Build Level"
msgstr ""
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr ""
@@ -1139,7 +1143,7 @@ msgstr ""
msgid "Automatically allocate required items with matching serial numbers"
msgstr ""
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr ""
@@ -1272,7 +1276,7 @@ msgstr ""
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr ""
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr ""
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Дозволити варіанти"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr ""
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "У виробництві"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr ""
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr ""
@@ -1527,31 +1531,31 @@ msgstr ""
msgid "Build order {bo} is now overdue"
msgstr ""
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr ""
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr ""
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr ""
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr ""
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr ""
msgid "No plugin"
msgstr ""
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr ""
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Користувач"
@@ -1654,8 +1658,8 @@ msgstr "Користувач"
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Ціна"
@@ -1677,8 +1681,8 @@ msgstr ""
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr ""
@@ -1686,7 +1690,7 @@ msgstr ""
msgid "Is this webhook active"
msgstr ""
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr ""
@@ -1756,7 +1760,7 @@ msgstr "Назва"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr ""
msgid "Unit definition"
msgstr ""
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr ""
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr ""
@@ -2172,7 +2176,7 @@ msgstr ""
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr ""
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Шаблон"
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr ""
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr ""
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr ""
@@ -2430,7 +2434,7 @@ msgstr ""
msgid "A order that is assigned to you was canceled"
msgstr ""
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr ""
@@ -2524,7 +2528,7 @@ msgstr ""
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr ""
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr ""
@@ -2914,8 +2918,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Компонент"
@@ -2931,7 +2935,7 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Доступний для продажу"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr ""
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr ""
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr ""
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr ""
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr ""
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr ""
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr ""
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr ""
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr ""
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr ""
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr ""
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr ""
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr ""
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr ""
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr ""
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr ""
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr ""
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr ""
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "Чи призначені групи користувачеві повинні бути видалені, якщо вони не є резервним сервером IdP. Відключення цього налаштування може спричинити проблеми безпеки"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr ""
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr ""
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr ""
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr ""
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr ""
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr ""
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr ""
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr ""
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr ""
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr ""
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr ""
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr ""
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr ""
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr ""
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr ""
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr ""
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr ""
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr ""
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr ""
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr ""
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr ""
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr ""
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr ""
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr ""
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr ""
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr ""
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr ""
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr ""
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Виробник"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr ""
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr ""
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr ""
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr ""
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr ""
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Позиція виробника"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr ""
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr ""
@@ -4448,7 +4460,7 @@ msgstr ""
msgid "Select supplier"
msgstr ""
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr ""
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Мінімальний платіж (напр. комісія за збереження)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr ""
@@ -4533,7 +4545,7 @@ msgstr ""
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "В наявності"
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Дійсно"
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr ""
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr ""
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr ""
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr ""
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr ""
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Внутрішній компонент"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr ""
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr ""
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr ""
msgid "Sales Order"
msgstr ""
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr ""
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr ""
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr ""
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr ""
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr ""
@@ -5184,487 +5196,487 @@ msgstr ""
msgid "Company address for this order"
msgstr ""
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr ""
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr ""
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr ""
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr ""
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr ""
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr ""
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr ""
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr ""
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr ""
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr ""
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr ""
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr ""
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr ""
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr ""
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr ""
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr ""
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr ""
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr ""
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr ""
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr ""
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr ""
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr ""
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr ""
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr ""
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr ""
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr ""
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr ""
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr ""
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr ""
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr ""
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr ""
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr ""
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr ""
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr ""
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr ""
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr ""
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr ""
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr ""
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr ""
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr ""
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr ""
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr ""
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr ""
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr ""
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr ""
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr ""
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr ""
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr ""
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr ""
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr ""
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr ""
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr ""
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr ""
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr ""
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr ""
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr ""
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr ""
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr ""
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr ""
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr ""
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr ""
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "Глибина"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "Батьківський елемент"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "Фільтр за батьківською категорією"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr ""
msgid "Icon"
msgstr ""
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr ""
@@ -6349,7 +6369,7 @@ msgstr ""
msgid "Part category"
msgstr ""
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Ревізія"
@@ -6382,7 +6402,7 @@ msgstr ""
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Мінімальний запас"
@@ -6390,7 +6410,7 @@ msgstr "Мінімальний запас"
msgid "Minimum allowed stock level"
msgstr "Мінімально дозволений рівень запасів"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr ""
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Дата"
@@ -6759,7 +6779,7 @@ msgstr ""
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr ""
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "Результати"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr ""
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr ""
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr ""
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr ""
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr ""
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr ""
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr ""
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr ""
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr ""
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr ""
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr ""
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr ""
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr ""
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr ""
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr ""
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Виробничий номер позиції"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr ""
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr ""
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr ""
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr ""
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr ""
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr ""
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr ""
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr ""
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr ""
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr ""
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Початковий запас"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr ""
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr ""
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr ""
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr ""
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Наявне зображення"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr ""
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr ""
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr ""
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr ""
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Мінімальна ціна"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr ""
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr ""
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Максимальна ціна"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr ""
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr ""
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr ""
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr ""
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr ""
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr ""
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr ""
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr ""
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr ""
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr ""
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr ""
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr ""
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr ""
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr ""
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr ""
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr ""
@@ -7326,91 +7346,91 @@ msgstr ""
msgid "No matching action found"
msgstr ""
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr ""
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr ""
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr ""
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr ""
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr ""
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr ""
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr ""
@@ -7992,7 +8012,7 @@ msgstr ""
msgid "Print a border around each label"
msgstr ""
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr ""
@@ -8072,77 +8092,77 @@ msgstr ""
msgid "The Supplier which acts as 'TME'"
msgstr ""
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr ""
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr ""
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr ""
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr ""
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr ""
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr ""
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr ""
@@ -8481,136 +8501,136 @@ msgstr ""
msgid "Letter"
msgstr ""
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr ""
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr ""
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr ""
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr ""
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr ""
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr ""
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr ""
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr ""
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr ""
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr ""
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr ""
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr ""
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr ""
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr ""
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr ""
@@ -8766,200 +8786,200 @@ msgstr ""
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr ""
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr ""
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr ""
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr ""
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr ""
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr ""
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr ""
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr ""
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr ""
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr ""
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr ""
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr ""
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr ""
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr ""
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr ""
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr ""
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr ""
@@ -9101,7 +9121,7 @@ msgstr ""
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr ""
@@ -9117,7 +9137,7 @@ msgstr ""
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr ""
@@ -9206,7 +9226,7 @@ msgstr ""
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr ""
msgid "Stock item has been assigned to a customer"
msgstr ""
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr ""
@@ -9234,7 +9254,7 @@ msgstr ""
msgid "Serialized stock cannot be merged"
msgstr ""
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr ""
@@ -9250,71 +9270,71 @@ msgstr ""
msgid "Stock status codes must match"
msgstr ""
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr ""
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr ""
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr ""
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr ""
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr ""
msgid "Supplier Part Number"
msgstr ""
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr ""
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr ""
@@ -9501,127 +9521,131 @@ msgstr ""
msgid "No stock items selected"
msgstr ""
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr ""
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr ""
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr ""
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr ""
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr ""
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr ""
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr ""
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr ""
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr ""
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr ""
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr ""
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr ""
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr ""
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr ""
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr ""
@@ -9927,163 +9951,163 @@ msgstr ""
msgid "Token has expired"
msgstr ""
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr ""
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr ""
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr ""
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr ""
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr ""
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr ""
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr ""
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr ""
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr ""
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr ""
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr ""
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr ""
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr ""
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr ""
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po
index 242a3481aa..9c70fca6d7 100644
--- a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "API endpoint không tồn tại"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr ""
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr ""
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr ""
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr ""
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr ""
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "Không có dữ liệu được cung cấp"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr ""
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "Người dùng không được phân quyền xem mẫu này"
@@ -65,11 +65,11 @@ msgstr "Xác nhận địa chỉ email"
msgid "You must type the same email each time."
msgstr "Bạn phải nhập cùng một email mỗi lần."
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "Địa chỉ email chính đã cung cấp không hợp lệ."
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "Miền email được cung cấp không được phê duyệt."
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "Không thể chuyển đổi {original} sang {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "Số lượng cung cấp không hợp lệ"
@@ -105,22 +105,22 @@ msgstr "Nhập ngày"
msgid "Invalid decimal value"
msgstr ""
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "Ghi chú"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "Giá trị '{name}' không xuất hiện ở định dạng mẫu"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "Giá trị được cung cấp không khớp với mẫu bắt buộc: "
@@ -164,51 +164,51 @@ msgstr "Xóa thẻ HTML từ giá trị này"
msgid "Data contains prohibited markdown content"
msgstr ""
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr ""
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr ""
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr ""
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr ""
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "Lỗi kết nối"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "Máy chủ phản hồi với mã trạng thái không hợp lệ"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "Xảy ra Exception"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "Máy chủ đã phản hồi với giá trị Content-Length không hợp lệ"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "Hình ảnh quá lớn"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "Tải xuống hình ảnh vượt quá kích thước tối đa"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "Máy chủ trả về phản hồi trống"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "URL được cung cấp không phải là tệp hình ảnh hợp lệ"
@@ -220,117 +220,121 @@ msgstr ""
msgid "Email"
msgstr "Email"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr ""
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "Lỗi xác thực plugin"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Siêu dữ liệu phải là đối tượng từ điển của python"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "Phụ trợ siêu dữ liệu"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "Trường siêu dữ liệu JSON, được sử dụng bởi phụ trợ bên ngoài"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "Mẫu được định dạng không thích hợp"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "Khóa định dạng không rõ ràng đã được chỉ định"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "Thiếu khóa định dạng cần thiết"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "Trường tham chiếu không thể rỗng"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "Tham chiếu phải phù hợp với mẫu yêu cầu"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "Số tham chiếu quá lớn"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "Lựa chọn sai"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "Tên"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "Mô tả"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "Mô tả (tùy chọn)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "Đường dẫn"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "Tên trùng lặp không thể tồn tại trong cùng cấp thư mục"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Ghi chú markdown (không bắt buộc)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "Dữ liệu mã vạch"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "Dữ liệu mã vạch của bên thứ ba"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "Dữ liệu băm mã vạch"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "Chuỗi băm duy nhất của dữ liệu mã vạch"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "Mã vạch đã tồn tại"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "Lỗi máy chủ"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "Lỗi đã được ghi lại bởi máy chủ."
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "Phải là một số hợp lệ"
msgid "Currency"
msgstr "Tiền tệ"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "Chọn tiền tệ trong các tùy chọn đang có"
@@ -521,11 +525,11 @@ msgstr "Tiếng Trung (Giản thể)"
msgid "Chinese (Traditional)"
msgstr "Tiếng Trung (Phồn thể)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr ""
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr ""
@@ -537,7 +541,7 @@ msgstr "Đơn vị vật lý không hợp lệ"
msgid "Not a valid currency code"
msgstr "Mã tiền tệ không hợp lệ"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "Trạng thái đặt hàng"
@@ -546,23 +550,23 @@ msgstr "Trạng thái đặt hàng"
msgid "Parent Build"
msgstr "Phiên bản cha"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr ""
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr ""
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr ""
msgid "Part"
msgstr "Nguyên liệu"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "Danh mục"
@@ -593,7 +597,7 @@ msgstr "Danh mục"
msgid "Ancestor Build"
msgstr "Xây dựng nguồn gốc"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "Đã gán cho tôi"
@@ -601,11 +605,11 @@ msgstr "Đã gán cho tôi"
msgid "Assigned To"
msgstr "Đã gán cho"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr ""
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr ""
@@ -641,99 +645,99 @@ msgstr ""
msgid "Completed after"
msgstr ""
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr ""
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr ""
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr ""
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa được"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "Vật tư tiêu hao"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "Tuỳ chọn"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "Lắp ráp"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "Đã theo dõi"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "Có thể kiểm tra"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr ""
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "Đã cấp phát"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "Đã dùng"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "Có sẵn"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "Bật đơn hàng"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr ""
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "Tạo đơn hàng"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "Địa điểm"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr ""
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr ""
@@ -773,9 +777,9 @@ msgstr ""
msgid "Build Order Reference"
msgstr "Tham chiếu đơn đặt bản dựng"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "Tham chiếu đơn đặt bản dựng"
msgid "Sales Order to which this build is allocated"
msgstr ""
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "Địa điểm nguồn"
@@ -821,7 +825,7 @@ msgstr ""
msgid "This build order is fulfilled externally"
msgstr ""
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "Địa điểm đích"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "Mã trạng thái bản dựng"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "Mã lô hàng"
@@ -883,8 +887,8 @@ msgstr "Ngày hoàn thành mục tiêu"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Ngày mục tiêu để hoàn thành bản dựng. Bản dựng sẽ bị quá hạn sau ngày này."
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "Ngày hoàn thành"
@@ -900,7 +904,7 @@ msgstr "Cấp bởi"
msgid "User who issued this build order"
msgstr "Người dùng người đã được phân công cho đơn đặt bản dựng này"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "Độ quan trọng của đơn đặt bản dựng"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "Mã dự án"
@@ -962,9 +966,9 @@ msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "Số lượng phải lớn hơn 0"
@@ -999,7 +1003,7 @@ msgstr "Dựng đối tượng"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "Số lượng phải là 1 cho kho sê ri"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "Số lượng được phân bổ ({q}) không thể vượt quá số lượng có trong kho ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "Kho hàng đã bị phân bổ quá đà"
@@ -1057,8 +1061,8 @@ msgstr "Kho hàng đã bị phân bổ quá đà"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "Kho hàng"
@@ -1082,7 +1086,7 @@ msgstr "Kho hàng đích"
msgid "Build Level"
msgstr "Tạo cấp"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "Tên sản phẩm"
@@ -1139,7 +1143,7 @@ msgstr "Số sêri tự cấp"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "Tự động cấp số seri phù hợp cho hàng hóa được yêu cầu"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "Số sêri sau đây đã tồn tại hoặc không hợp lệ"
@@ -1272,7 +1276,7 @@ msgstr "Mục chi tiết bản dựng"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part phải trỏ đến phần tương tự của đơn đặt bản dựng"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "Hàng hóa phải trong kho"
@@ -1385,8 +1389,8 @@ msgstr ""
msgid "Build"
msgstr ""
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "Sản phẩm nhà cung cấp"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "Cho phép biến thể"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "Mục BOM"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "Đang sản xuất"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr ""
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "Kho ngoài"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "Số hàng tồn"
@@ -1527,31 +1531,31 @@ msgstr "Đơn đặt bản dựng quá hạn"
msgid "Build order {bo} is now overdue"
msgstr "Đặt hàng bản dựng {bo} đang quá hạn"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "Đường dẫn"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "File"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "Không có quyền xoá file đính kèm"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "Không có quyền xoá file đính kèm"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr ""
@@ -1571,8 +1575,8 @@ msgstr "Mã tiền tệ không đúng"
msgid "No plugin"
msgstr "Không phần mở rộng"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "Chuỗi khóa phải duy nhất"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "Người dùng"
@@ -1654,8 +1658,8 @@ msgstr "Người dùng"
msgid "Price break quantity"
msgstr "Số lượng giá phá vỡ"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "Giá"
@@ -1677,8 +1681,8 @@ msgstr "Tên của webhook này"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "Hoạt động"
@@ -1686,7 +1690,7 @@ msgstr "Hoạt động"
msgid "Is this webhook active"
msgstr "Webhook có hoạt động không"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "Chữ ký số"
@@ -1756,7 +1760,7 @@ msgstr "Tiêu đề"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "Định nghĩa"
msgid "Unit definition"
msgstr "Định nghĩa đơn vị"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "Đính kèm"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr ""
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "Giá trị"
@@ -2172,7 +2176,7 @@ msgstr "Lựa chọn hợp lệ từ tham số này (ngăn cách bằng dấu ph
msgid "Selection list for this parameter"
msgstr ""
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "Đã bật"
@@ -2204,8 +2208,8 @@ msgstr ""
msgid "ID of the target model for this parameter"
msgstr ""
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "Mẫu"
@@ -2262,7 +2266,7 @@ msgstr ""
msgid "URL endpoint which processed the barcode"
msgstr ""
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "Ngữ cảnh"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr ""
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "Kết quả"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr ""
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "Khóa"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} đã bị hủy"
msgid "A order that is assigned to you was canceled"
msgstr "Một đơn đặt từng được phân công cho bạn đã bị hủy bỏ"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "Mục đã nhận"
@@ -2524,7 +2528,7 @@ msgstr "Tên tập tin"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr ""
@@ -2669,8 +2673,8 @@ msgstr "Mức độ thường xuyên để cập nhật tỉ giá hối đoái (
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "ngày"
@@ -2914,8 +2918,8 @@ msgstr "Sản phẩm là mẫu bởi mặc định"
msgid "Parts can be assembled from other components by default"
msgstr "Sản phẩm có thể lắp giáp từ thành phần khác theo mặc định"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "Thành phần"
@@ -2931,7 +2935,7 @@ msgstr "Có thể mua"
msgid "Parts are purchaseable by default"
msgstr "Sản phẩm mặc định có thể mua được"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "Có thể bán"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr ""
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "Khổ giấy"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr ""
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "Mã tham chiếu đơn đặt bản dựng"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt bản dựng"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr ""
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr ""
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr ""
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr ""
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr ""
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr ""
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr ""
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr ""
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr ""
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr ""
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr ""
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr ""
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr ""
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr ""
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "Bật đơn hàng trả lại"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "Bật chức năng đơn hàng trả lại trong giao diện người dùng"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "Mẫu tham chiếu đơn hàng trả lại"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr ""
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "Sửa đơn hàng trả lại đã hoàn thành"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "Cho phép sửa đơn hàng trả lại sau khi đã hoàn thành rồi"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "Mẫu tham chiếu đơn đặt hàng"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "Mẫu bắt buộc để tạo trường tham chiếu đơn đặt hàng"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "Vận chuyển mặc định đơn đặt hàng"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "Cho phép tạo vận chuyển mặc định với đơn đặt hàng"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "Sửa đơn đặt hàng đã hoàn thành"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "Cho phép sửa đơn đặt hàng sau khi đã vận chuyển hoặc hoàn thành"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr ""
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr ""
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr ""
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr ""
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "Mẫu tham chiếu đơn đặt mua"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "Mẫu bắt buộc cho để trường tham chiếu đơn đặt mua"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "Sửa đơn đặt mua đã hoàn thành"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "Cho phép sửa đơn đặt mua sau khi đã vận chuyển hoặc hoàn thành"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr ""
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr ""
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "Tự động hoàn thành đơn đặt mua"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr ""
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "Bật quên mật khẩu"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "Bật chức năng quên mật khẩu trong trang đăng nhập"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "Bật đăng ký"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "Cho phép người dùng tự đăng ký tại trang đăng nhập"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "Bật SSO"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "Cho phép SSO tại trang đăng nhập"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "Bật đăng ký SSO"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "Cho phép người dùng tự đăng ký SSO tại trang đăng nhập"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr ""
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr ""
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr ""
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr ""
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr ""
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr ""
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr ""
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr ""
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "Yêu cầu email"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "Yêu cầu người dùng cung cấp email để đăng ký"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "Người dùng tự động điền SSO"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "Tự động điền thông tin chi tiết từ dữ liệu tài khoản SSO"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "Thư 2 lần"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "Khi đăng ký sẽ hỏi người dùng hai lần thư điện tử của họ"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "Mật khẩu 2 lần"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "Khi đăng ký sẽ hỏi người dùng hai lần mật khẩu của họ"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "Các tên miền được phép"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "Cấm đăng ký với 1 số tên miền cụ thể (dấu phẩy ngăn cách, bắt đầu với dấu @)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "Nhóm khi đăng ký"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr ""
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "Bắt buộc MFA"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "Người dùng phải sử dụng bảo mật đa nhân tố."
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr ""
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "Kiểm tra phần mở rộng khi khởi động"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "Kiểm tra toàn bộ phần mở rộng đã được cài đặt khi khởi dộng - bật trong môi trường ảo hóa"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "Kiểm tra cập nhật plugin"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr ""
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "Bật tích hợp URL"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "Bật phần mở rộng để thêm định tuyến URL"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "Bật tích hợp điều hướng"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "Bật phần mở rộng để tích hợp thanh định hướng"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "Bật tích hợp ứng dụng"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "Bật phần mở rộng để thêm ứng dụng"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "Cho phép tích hợp lập lịch"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "Bật phẩn mở rộng để chạy các tác vụ theo lịch"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "Bật tích hợp nguồn cấp sự kiện"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "Bật phần mở rộng để trả lời sự kiện bên trong"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr ""
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr ""
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr ""
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr ""
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr ""
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr ""
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr ""
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr ""
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "Ngoại trừ vị trí bên ngoài"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr ""
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "Giai đoạn kiểm kê tự động"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr ""
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr ""
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr ""
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr ""
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr ""
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr ""
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr ""
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "Hiển thị tên đầy đủ của người dùng"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "Hiển thị tên đầy đủ thay vì tên đăng nhập"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr ""
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr ""
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr ""
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr ""
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr ""
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr ""
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr ""
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr ""
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr ""
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr ""
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr ""
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "Tên miền rỗng là không được phép."
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "Tên miền không hợp lệ: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr ""
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr ""
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr ""
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "Nhà sản xuất"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "Doanh nghiêp"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "Địa chỉ email liên hệ"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "Liên hệ"
@@ -4297,7 +4309,7 @@ msgstr ""
msgid "Company Tax ID"
msgstr ""
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "Địa chỉ"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "Liên kết thông tin địa chỉ (bên ngoài)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "Sản phẩm nhà sản xuất"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "Chọn nhà sản xuất"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr ""
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "Sản phẩm nhà sản xuất đã liên kết phải tham chiếu với sản phẩm cơ bản tương tự"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "Nhà cung cấp"
@@ -4448,7 +4460,7 @@ msgstr "Nhà cung cấp"
msgid "Select supplier"
msgstr "Chọn nhà cung cấp"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "Đơn vị quản lý kho nhà cung cấp"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "Thu phí tối thiểu (vd: phí kho bãi)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "Đóng gói"
@@ -4533,7 +4545,7 @@ msgstr "Tiền tệ mặc định được sử dụng cho nhà cung cấp này"
msgid "Company Name"
msgstr ""
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "Còn hàng"
@@ -4722,7 +4734,7 @@ msgstr ""
msgid "Errors"
msgstr ""
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "Hợp lệ"
@@ -4838,7 +4850,7 @@ msgstr ""
msgid "Connected"
msgstr ""
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "Không rõ"
@@ -4942,7 +4954,7 @@ msgstr ""
msgid "Value of the property"
msgstr ""
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "Nhóm"
@@ -4966,118 +4978,118 @@ msgstr ""
msgid "Maximum value for progress type, required if type=progress"
msgstr ""
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "Tham chiếu đơn đặt"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr ""
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr ""
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "Tạo bởi"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr ""
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr ""
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr ""
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr ""
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr ""
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr ""
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr ""
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr ""
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr ""
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr ""
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr ""
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr ""
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr ""
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr ""
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "Đặt hàng"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr ""
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "Sản phẩm nội bộ"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr ""
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "Đã hoàn thành"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr ""
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr ""
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "Đơn hàng"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "Đơn hàng"
msgid "Sales Order"
msgstr "Đơn đặt hàng"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "Đơn hàng trả lại"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr ""
msgid "Order description (optional)"
msgstr "Mô tả đơn đặt (tùy chọn)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "Mã dự án đã chọn cho đơn đặt hàng này"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "Liên kết đến trang bên ngoài"
@@ -5151,7 +5163,7 @@ msgstr ""
msgid "Scheduled start date for this order"
msgstr ""
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "Ngày mục tiêu"
@@ -5184,487 +5196,487 @@ msgstr "Đầu mối liên hệ của đơn đặt này"
msgid "Company address for this order"
msgstr "Địa chỉ công ty cho đơn đặt này"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "Mã đặt hàng"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "Trạng thái"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "Trạng thái đơn đặt mua"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "Doanh nghiệp từ những hàng hóa đang được đặt mua"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "Tham chiếu nhà cung cấp"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "Mã tham chiếu đơn đặt nhà cung cấp"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "nhận bởi"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "Ngày đặt hàng đã được hoàn thiện"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "Đích đến"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr ""
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "Nhà cung cấp sản phẩm phải trùng với nhà cung cấp PO"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "Mục dòng không phù hợp với đơn đặt mua"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr ""
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "Số lượng phải là số dương"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr ""
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "Khách hàng"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "Doanh nghiệp từ những hàng hóa đang được bán"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr ""
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "Tham chiếu khách hàng "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "Mã tham chiếu đơn đặt của khách hàng"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "Ngày giao hàng"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "vận chuyển bằng"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr ""
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr ""
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "Những đơn hàng đang mở thì sẽ được đánh dấu là hoàn thành"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "Đơn hàng không thể hoàn thành được vì vận chuyển chưa xong"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr ""
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "Đơn hàng không thể hoàn thành được vì những khoản riêng chưa xong"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr ""
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "Số lượng mặt hàng"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr ""
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr ""
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "Tham chiếu khoản riêng"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "Ghi chú khoản riêng"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "Ngày mục tiêu cho khoản riêng này (để trống để sử dụng ngày mục tiêu từ đơn đặt)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "Mô tả khoản riêng (tùy chọn)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "Ngữ cảnh bổ sung"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "Đơn giá"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr ""
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "Sản phẩm nhà cung cấp phải phù hợp với nhà cung cung cấp"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr ""
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr ""
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr ""
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "Sản phẩm nhà cung cấp"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "Đã nhận"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "Số mục đã nhận"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "Giá mua"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "Giá đơn vị mua"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr ""
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr ""
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr ""
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "Chỉ có thể gán sản phẩm có thể bán vào đơn đặt bán hàng"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "Giá bán"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "Giá bán đơn vị"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "Đã chuyển"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "Số lượng đã vận chuyển"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr ""
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr ""
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr ""
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "Ngày vận chuyển"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "Ngày giao hàng"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "Ngày giao hàng của vận chuyển"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "Kiểm tra bởi"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "Người dùng đã kiểm tra vận chuyển này"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "Vận chuyển"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "Mã vận chuyển"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "Số theo dõi"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "Thông tin theo dõi vận chuyển"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "Mã hóa đơn"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "Số tham chiếu liên kết với hóa đơn"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "Vận đơn đã được gửi đi"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "Vận đơn chưa có hàng hóa được phân bổ"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr ""
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr ""
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr ""
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "Hàng trong kho chưa được giao"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Không thể phân bổ hàng hóa vào cùng với dòng với sản phẩm khác"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "Không thể phân bổ hàng hóa vào một dòng mà không có sản phẩm nào"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Số lượng phân bổ không thể vượt quá số lượng của kho"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "Số lượng phân bổ phải lớn hơn 0"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "Số lượng phải là 1 cho hàng hóa sêri"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "Đơn bán hàng không phù hợp với vận đơn"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "Vận đơn không phù hợp với đơn bán hàng"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "Dòng"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "Tham chiếu vận đơn của đơn hàng bán"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "Hàng hóa"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "Chọn hàng trong kho để phân bổ"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "Nhập số lượng phân kho"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "Tham chiếu đơn hàng trả lại"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "Công ty có hàng hóa sẽ được trả lại"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "Trạng thái đơn hàng trả lại"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr ""
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr ""
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr ""
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr ""
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr ""
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "Chọn hàng hóa để trả lại từ khách hàng"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "Ngày nhận được"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr ""
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "Kết quả"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "Kết quả cho hàng hóa dòng này"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "Chi phí gắn với hàng trả lại hoặc sửa chữa cho dòng hàng hóa này"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr ""
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr ""
msgid "Copy extra line items from the original order"
msgstr ""
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "Sao chép thông số"
@@ -5784,11 +5796,11 @@ msgstr ""
msgid "Merge items with the same part, destination and target date into one line item"
msgstr ""
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr ""
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "Mã sản phẩm nội bộ"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "Nhập mã lô cho hàng trong kho đang đến"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "Ngày hết hạn"
@@ -6056,123 +6068,131 @@ msgstr ""
msgid "Return order {ro} is now overdue"
msgstr ""
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr ""
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr ""
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr ""
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr ""
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr ""
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr ""
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr ""
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr ""
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr ""
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr ""
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr ""
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr ""
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr ""
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr ""
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr ""
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr ""
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr ""
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr ""
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr ""
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr ""
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr ""
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr ""
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr ""
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr ""
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr ""
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr ""
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr ""
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr ""
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr ""
@@ -6213,7 +6233,7 @@ msgstr "Từ khóa mặc định cho sản phẩm trong danh mục này"
msgid "Icon"
msgstr "Biểu tượng"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "Biểu tượng (tùy chọn)"
@@ -6349,7 +6369,7 @@ msgstr "Từ khóa sản phẩm để cải thiện sự hiện diện trong k
msgid "Part category"
msgstr "Danh mục sản phẩm"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr ""
@@ -6358,7 +6378,7 @@ msgstr ""
msgid "Part revision or version number"
msgstr "Số phiên bản hoặc bản duyệt lại sản phẩm"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "Phiên bản"
@@ -6382,7 +6402,7 @@ msgstr "Hết hạn mặc định"
msgid "Expiry time (in days) for stock items of this part"
msgstr "Thời gian hết hạn (theo ngày) để nhập kho hàng hóa cho sản phẩm này"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "Kho tối thiểu"
@@ -6390,7 +6410,7 @@ msgstr "Kho tối thiểu"
msgid "Minimum allowed stock level"
msgstr "Cấp độ kho tối thiểu được phép"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "Tống số kho tại thời điểm kiểm kê"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "Ngày"
@@ -6759,7 +6779,7 @@ msgstr "Sản phẩm phụ"
msgid "Select part to be used in BOM"
msgstr "Chọn sản phẩm được dùng trong BOM"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr ""
msgid "Parent part category"
msgstr ""
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "Phụ mục"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr ""
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr ""
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "Loại tiền mua hàng của hàng hóa này"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr ""
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "Sản phẩm gốc"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "Chọn sản phẩm gốc để nhân bản"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "Sao chép ảnh"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "Sao chép hình ảnh từ sản phẩm gốc"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "Sao chép BOM"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "Sao chép định mức nguyên vật liệu từ sản phẩm gốc"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "Sao chép thông tin tham số từ sản phẩm gốc"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "Sao chép ghi chú"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "Sao chép ghi chú từ sản phẩm gốc"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr ""
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr ""
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "Số liệu tồn kho ban đầu"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "Chỉ ra số lượng tồn kho ban đầu cho sản phẩm. Nếu điền là không, không thêm kho nào."
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "Vị trí kho ban đầu"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "Chỉ định vị trí kho ban đầu cho sản phẩm này"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "Chọn nhà cung cấp (hoặc để trống để bỏ qua)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "Chọn nhà sản xuất (hoặc để trống để bỏ qua)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "Mã số nhà sản xuất"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "Công ty đã chọn không phải là nhà cung ứng hợp lệ"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "Công ty đã chọn không phải là nhà sản xuất hợp lệ"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "Mã số nhà sản xuất khớp với MPN này đã tồn tại"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "Mã số nhà cung cấp khớp với SKU này đã tồn tại"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "Tên danh mục"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "Đang dựng"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr ""
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr ""
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "Hàng trong kho"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr ""
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "Tổng số lượng"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr ""
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr ""
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "Nhân bản sản phẩm"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "Sao chép dữ liệu ban đầu từ sản phẩm khác"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "Số liệu kho ban đầu"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "Tạo sản phẩm với số lượng tồn kho ban đầu"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "Thông tin nhà cung cấp"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "Thêm thông tin nhà cung cấp ban đầu cho sản phẩm này"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "Sao chép thông số nhóm hàng"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "Sao chép mẫu tham số từ nhóm sản phẩm được chọn"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "Ảnh hiện có"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "Tên tệp của ảnh sản phẩm hiện hữu"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "Tệp hình ảnh không tồn tại"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "Xác minh toàn bộ hóa đơn vật liệu"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "Có thể dựng"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr ""
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr ""
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr ""
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr ""
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr ""
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr ""
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr ""
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr ""
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr ""
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr ""
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr ""
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr ""
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr ""
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "Giá thấp nhất"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "Giá trị tính toán ghi đè cho giá tối thiểu"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "Tiền tế giá tối thiểu"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "Giá cao nhất"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "Giá trị tính toán ghi đè cho giá tối đa"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "Tiền tế giá tối đa"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "Cập nhật"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "Cập nhật giá cho sản phẩm này"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "Không thể chuyển đổi từ tiền tệ đã cung cấp cho {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "Giá tối thiểu không được lớn hơn giá tối đa"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "Giá tối đa không được nhỏ hơn giá tối thiểu"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr ""
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr ""
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "Chọn sản phẩm để sao chép định mức nguyên vật liệu"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "Xóa dữ liệu đã tồn tại"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "Xóa mục BOM đã tồn tại trước khi sao chép"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "Bao gồm thừa hưởng"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "Bao gồm mục BOM được thừa hưởng từ sản phẩm mẫu"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "Bỏ qua dòng không hợp lệ"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "Bật tùy chọn này để bỏ qua dòng không hợp lệ"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "Sao chép sản phẩm thay thế"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "Sao chép sản phẩm thay thế khi nhân bản hàng hóa BOM"
@@ -7326,91 +7346,91 @@ msgstr "Chưa chỉ ra hành động cụ thể"
msgid "No matching action found"
msgstr "Không tìm thấy chức năng phù hợp"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "Không tìm thấy dữ liệu mã vạch phù hợp"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "Đã tìm thấy dữ liệu mã vạch phù hợp"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr ""
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr ""
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "Mã vạch phù hợp với hàng hóa hiện có"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "Không tìm thấy thông tin sản phẩm phù hợp"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "Không tìm thấy sản phẩm nhà cung cấp phù hợp"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "Tìm thấy nhiều sản phẩm nhà cung cấp phù hợp"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr ""
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "Sản phẩm nhà cung cấp phù hợp"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "Hàng hóa này đã được nhận"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr ""
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr ""
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr ""
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr ""
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr ""
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr ""
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "Kho không đủ hạn mức khả dụng"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr ""
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "Không đủ thông tin"
@@ -7992,7 +8012,7 @@ msgstr "Viền"
msgid "Print a border around each label"
msgstr "In một viền xung quanh từng nhãn"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "Ngang"
@@ -8072,77 +8092,77 @@ msgstr "Cung cấp khả năng quét mã vạch TME"
msgid "The Supplier which acts as 'TME'"
msgstr "Nhà cung cấp hoạt động như 'TME'"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr ""
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr ""
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr ""
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr ""
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "Cài đặt phần mở rộng thành công"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "Cài đặt phần bổ sung đến {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr ""
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr ""
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr ""
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr ""
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr ""
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr ""
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr ""
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr ""
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr ""
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr ""
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr ""
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr ""
@@ -8194,21 +8214,21 @@ msgstr ""
msgid "Plugin"
msgstr "Phần bổ sung"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "Không tìm thấy tác giả"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "Phần bổ sung '{p}' không tương thích với phiên bản InvenTree hiện tại {v}"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "Phần bổ sung yêu cầu ít nhất phiên bản {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "Phần bổ sung yêu cầu tối đa phiên bản {v}"
@@ -8481,136 +8501,136 @@ msgstr "Pháp lý"
msgid "Letter"
msgstr "Thư"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr ""
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "Tên mẫu"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr ""
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr ""
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr ""
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr ""
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "Mẫu tên tệp"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr ""
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr ""
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr ""
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "Bộ lọc"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr ""
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr ""
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "Khổ giấy cho báo cáo PDF"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "Tạo báo cáo theo hướng ngang"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr ""
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr ""
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr ""
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr ""
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr ""
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr ""
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr ""
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "Chiều rộng [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "Chiều rộng nhãn, tính theo mm"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "Chiều cao [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "Chiều cao nhãn, tính theo mm"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr ""
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "Mẫu trích"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "Tệp báo cáo mẫu"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "Mô tả tệp báo cáo mẫu"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "Tài sản"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "Tệp báo cáo tài sản"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "Mô tả tệp báo cáo tài sản"
@@ -8766,200 +8786,200 @@ msgstr "Không có kết quả"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr ""
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr ""
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr ""
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "Không tìm thấy tệp hình ảnh"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr ""
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "thẻ part_image yêu cầu 1 thực thể sản phẩm"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "thẻ company_image yêu cầu một thực thể doanh nghiệp"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr ""
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr ""
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr ""
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr ""
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr ""
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr ""
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr ""
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr ""
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr ""
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr ""
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr ""
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr ""
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr ""
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "Mã trạng thái"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "Địa điểm bên ngoài"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr ""
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr ""
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "Cây sản phẩm"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr ""
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr ""
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr ""
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr ""
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "Ngày hết hạn trước đó"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "Ngày hết hạn sau đó"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "Ế"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr ""
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr ""
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr ""
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr ""
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "Bắt buộc nhập số lượng"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "Phải cung cấp sản phẩm hợp lệ"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "Sản phẩm nhà cung cấp đã đưa không tồn tại"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "Sản phẩm nhà cung cấp có kích thước đóng gói được định nghĩa nhưng cờ use_pack_size chưa được thiết lập"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "Số sê-ri không thê được cung cấp cho sản phẩm không thể theo dõi"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr ""
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr ""
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr ""
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr ""
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr ""
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr ""
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr ""
@@ -8995,7 +9015,7 @@ msgstr "Chọn chủ sở hữu"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "Không thể đưa trực tiếp hàng trong kho vào bên trong vị trí kho hàng có cấu trúc, nhưng có thể đặt vào kho con."
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "Bên ngoài"
@@ -9101,7 +9121,7 @@ msgstr "Chọn sản phẩm nhà cung cấp khớp với hàng hóa trong kho n
msgid "Where is this stock item located?"
msgstr "Hàng trong kho này được đặt ở đâu?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "Đóng gói hàng hóa này được lưu trữ lại"
@@ -9117,7 +9137,7 @@ msgstr "Mục này đã được cài đặt trong mục khác?"
msgid "Serial number for this item"
msgstr "Số sê ri cho mục này"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "Mã lô cho hàng trong kho này"
@@ -9206,7 +9226,7 @@ msgstr "Số lượng không khớp với số sêri"
msgid "Cannot assign stock to structural location"
msgstr ""
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr ""
@@ -9226,7 +9246,7 @@ msgstr "Hàng trong kho chứa hàng hóa khác"
msgid "Stock item has been assigned to a customer"
msgstr "Hàng trong kho đã được gắn với một khách hàng"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "Hàng trong kho hiện đang sản xuất"
@@ -9234,7 +9254,7 @@ msgstr "Hàng trong kho hiện đang sản xuất"
msgid "Serialized stock cannot be merged"
msgstr "Không thể hợp nhất kho nối tiếp"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "Mặt hàng trùng lặp"
@@ -9250,71 +9270,71 @@ msgstr "Mặt hàng phải tham chiếu đến sản phẩm nhà cung cấp tư
msgid "Stock status codes must match"
msgstr "Mã trạng thái kho phải phù hợp"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Không thể xóa mặt hàng không ở trong kho"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr ""
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "Ghi chú đầu vào"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr ""
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "Phải cung cấp giá trị cho kiểm thử này"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "Phải tải liên đính kèm cho kiểm thử này"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr ""
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "Kết quả kiểm thử"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "Giá trị đầu ra kiểm thử"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "Đính kèm kết quả kiểm thử"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "Ghi chú kiểm thử"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr ""
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr ""
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr ""
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr ""
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr ""
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr ""
@@ -9398,7 +9418,7 @@ msgstr "Điền số sêri cho hàng hóa mới"
msgid "Supplier Part Number"
msgstr "Số hiệu hàng hoá nhà cung cấp"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "Đã hết hạn"
@@ -9428,8 +9448,8 @@ msgstr ""
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "Số lượng phải không vượt quá số lượng trong kho đang có ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "Vị trí kho đích"
@@ -9501,127 +9521,131 @@ msgstr "Chọn mặt hàng để đổi trạng thái"
msgid "No stock items selected"
msgstr "Không có mặt hàng nào được chọn"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "Kho phụ"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr ""
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "Sản phẩm phải có thể bán được"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "Hàng hóa được phân bổ đến một đơn hàng bán"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "Hàng hóa được phân bổ đến một đơn đặt bản dựng"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "Khách hàng được gán vào các mặt hàng"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "Công ty đã chọn không phải là khách hàng"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "Ghi chú phân bổ kho"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "Phải cung cấp danh sách mặt hàng"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "Ghi chú gộp kho"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "Cho phép nhiều nhà cung không khớp"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "Cho phép mặt hàng cùng sản phẩm nhà cung cấp khác phải được gộp"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "Cho phép trạng thái không khớp"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "Cho phép mặt hàng với mã trạng thái khác nhau để gộp lại"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "Cần cung cấp ít nhất hai mặt hàng"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr ""
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "Giá trị khóa chính mặt hàng"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr ""
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr ""
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr ""
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "Ghi chú giao dịch kho"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr ""
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "Ghi chú giao dịch kho"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr ""
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr ""
@@ -9919,7 +9943,7 @@ msgstr "Quyền"
msgid "Important dates"
msgstr "Ngày quan trọng"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "Mã thông báo đã bị thu hồi"
@@ -9927,163 +9951,163 @@ msgstr "Mã thông báo đã bị thu hồi"
msgid "Token has expired"
msgstr "Mã thông báo đã hết hạn"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "Mã thông báo API"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "Mã thông báo API"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "Tên mã thông báo"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "Tên tùy chỉnh mã thông báo"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "Ngày hết hạn mã thông báo"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "Xem lần cuối"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "Lần cuối mã thông báo được sử dụng"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "Đã thu hồi"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "Quyền hạn đã đặt"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "Xem"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "Quyền để xem mục"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "Thêm"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "Quyền để thêm mục"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "Đổi"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "Quyển để sửa mục"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "Xóa"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "Quyền để xóa mục"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr ""
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr ""
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr ""
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr ""
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr ""
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr ""
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr ""
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr ""
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr ""
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr ""
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr ""
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr ""
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr ""
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr ""
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr ""
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr ""
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr ""
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr ""
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr ""
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr ""
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr ""
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr ""
diff --git a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
index 29452758b7..46a09a4c2b 100644
--- a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "未找到 API 端点"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr "批量操作必须提供物料清单"
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "必须以列表形式提供项目"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "提供了无效的单位"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "所有过滤器只能使用true"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "没有符合所供条件的项目"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "未提供数据"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "此字段的值必须是唯一的。"
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "用户没有权限查阅当前模型。"
@@ -65,11 +65,11 @@ msgstr "邮箱地址已确认"
msgid "You must type the same email each time."
msgstr "您必须每次输入相同的电子邮件。"
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "提供的主电子邮件地址无效。"
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "提供的邮箱域名未被批准。"
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "不能将 {original} 转换到 {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "提供的数量无效"
@@ -105,22 +105,22 @@ msgstr "输入日期"
msgid "Invalid decimal value"
msgstr "无效的数值"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "备注"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "值' {name}' 未出现在模式格式中"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "提供的值与所需模式不匹配:"
@@ -164,51 +164,51 @@ msgstr "从这个值中删除 HTML 标签"
msgid "Data contains prohibited markdown content"
msgstr "数据包含禁止的 markdown 内容"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr "无效URL:没有主机名"
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr "无效URL:无法解析的主机名"
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr "URL指向私有或保留IP地址"
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr "太多重定向"
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "连接错误"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "服务器响应状态码无效"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "发生异常"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "服务器响应的内容长度值无效"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "图片尺寸过大"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "图片下载超出最大尺寸"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "远程服务器返回了空响应"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "提供的 URL 不是一个有效的图片文件"
@@ -220,117 +220,121 @@ msgstr "登录应用程序"
msgid "Email"
msgstr "电子邮件"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "您必须启用双重身份验证才能进行后续操作。"
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "运行插件验证时出错"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "元数据必须是 Python dict 对象"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "插件元数据"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "供外部插件使用的JSON元数据字段"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "格式错误"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "使用了未知的格式键值"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "缺少必需的格式键值"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "参考字段不能为空"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "参考字段必须符合指定格式"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "参考编号过大"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "无效选项"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "名称"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "描述"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "描述(选填)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "路径"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "同一父级下不能存在重复名称"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Markdown备注(选填)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "条码数据"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "第三方条码数据"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "条码哈希值"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "条码数据的唯一哈希值"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "检测到已存在条码"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "服务器错误"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "服务器记录了一个错误。"
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "必须是有效数字"
msgid "Currency"
msgstr "货币"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "从可用选项中选择货币"
@@ -521,11 +525,11 @@ msgstr "中文 (简体)"
msgid "Chinese (Traditional)"
msgstr "中文 (繁体)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "有可用更新"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "InvenTree有可用更新"
@@ -537,7 +541,7 @@ msgstr "无效的物理单位"
msgid "Not a valid currency code"
msgstr "无效的货币代码"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "订单状态"
@@ -546,23 +550,23 @@ msgstr "订单状态"
msgid "Parent Build"
msgstr "父级生产订单"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "包含变体"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "包含变体"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "包含变体"
msgid "Part"
msgstr "零件"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "类别"
@@ -593,7 +597,7 @@ msgstr "类别"
msgid "Ancestor Build"
msgstr "可测试部分"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "分配给我"
@@ -601,11 +605,11 @@ msgstr "分配给我"
msgid "Assigned To"
msgstr "负责人"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "创建时间早于"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "创建时间晚于"
@@ -641,99 +645,99 @@ msgstr "完成日期早于"
msgid "Completed after"
msgstr "完成日期晚于"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "最小日期"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "最大日期"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "排除树"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "生产订单必须取消后才能删除"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "耗材"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "可选项"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "装配件"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "可追溯"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "需检测"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "未结算订单"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "已分配"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "已消耗"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "可用数量"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "已订购"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr "未找到版本"
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "生产订单"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "库存位置"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "产出"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "按产出库存项ID筛选,使用“null”查找未安装的生产项。"
@@ -773,9 +777,9 @@ msgstr "目标日期必须在开始日期之后"
msgid "Build Order Reference"
msgstr "生产订单编号"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "销售订单编号"
msgid "Sales Order to which this build is allocated"
msgstr "该生产订单关联的销售订单"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "源库位"
@@ -821,7 +825,7 @@ msgstr "外协生产"
msgid "This build order is fulfilled externally"
msgstr "该生产订单由外部供应商完成"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "目标库位"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "生产状态代码"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "批号"
@@ -883,8 +887,8 @@ msgstr "计划完成日期"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "生产订单的计划完成时间,逾期后系统将标记为超期。"
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "完成日期"
@@ -900,7 +904,7 @@ msgstr "发起人"
msgid "User who issued this build order"
msgstr "创建该生产订单的用户"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "此生产订单的优先级"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "项目编号"
@@ -962,9 +966,9 @@ msgstr "产出与生产订单不匹配"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "数量必须大于零"
@@ -999,7 +1003,7 @@ msgstr "生产对象"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "序列化物料的数量必须为1"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "分配数量 ({q}) 不得超过可用库存数量 ({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "库存品项超额分配"
@@ -1057,8 +1061,8 @@ msgstr "库存品项超额分配"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "库存项"
@@ -1082,7 +1086,7 @@ msgstr "目标库存项"
msgid "Build Level"
msgstr "生产等级"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "零件名称"
@@ -1139,7 +1143,7 @@ msgstr "自动分配序列号"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "自动为所需项目分配对应的序列号"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "以下序列号已存在或无效"
@@ -1272,7 +1276,7 @@ msgstr "生产行项目"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part 必须与生产订单零件相同"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "项目必须在库存中"
@@ -1385,8 +1389,8 @@ msgstr "安裝到"
msgid "Build"
msgstr "生产"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "供应商零件"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "允许变体"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "物料清单项"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "生产中"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "生产计划"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "外部库存"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "可用库存"
@@ -1527,31 +1531,31 @@ msgstr "逾期的生产订单"
msgid "Build order {bo} is now overdue"
msgstr "生产订单 {bo} 现已逾期"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "是否链接"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "是否为文件"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "用户没有权限删除此附件"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr "用户没有编辑此附件的权限"
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "用户没有权限删除此附件"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "选择列表已锁定"
@@ -1571,8 +1575,8 @@ msgstr "未提供有效的货币代码"
msgid "No plugin"
msgstr "暂无插件"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr "标签"
@@ -1645,8 +1649,8 @@ msgstr "键字符串必须是唯一的"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "使用者"
@@ -1654,8 +1658,8 @@ msgstr "使用者"
msgid "Price break quantity"
msgstr "批发价数量"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "价格"
@@ -1677,8 +1681,8 @@ msgstr "此网络钩子的名称"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "激活"
@@ -1686,7 +1690,7 @@ msgstr "激活"
msgid "Is this webhook active"
msgstr "网络钩子是否已启用"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "令牌"
@@ -1756,7 +1760,7 @@ msgstr "标题"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "定义"
msgid "Unit definition"
msgstr "单位定义"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "附件"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "等同于商业逻辑中自定义状态的状态逻辑键"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "值"
@@ -2172,7 +2176,7 @@ msgstr "此参数的有效选择 (逗号分隔)"
msgid "Selection list for this parameter"
msgstr "此参数的选择列表"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "已启用"
@@ -2204,8 +2208,8 @@ msgstr "型号ID"
msgid "ID of the target model for this parameter"
msgstr "此参数的目标模型的 ID"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "模板"
@@ -2262,7 +2266,7 @@ msgstr "扫描条形码的日期和时间"
msgid "URL endpoint which processed the barcode"
msgstr "处理条码的 URL 端点"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "上下文"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "扫描条形码的响应数据"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "结果"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "邮件主题"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "键"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} 已取消"
msgid "A order that is assigned to you was canceled"
msgstr "分配给您的订单已取消"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "收到的物品"
@@ -2524,7 +2528,7 @@ msgstr "文件名"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "模型类型"
@@ -2669,8 +2673,8 @@ msgstr "检查更新的频率(设置为零以禁用)"
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "天"
@@ -2914,8 +2918,8 @@ msgstr "零件默认为模板"
msgid "Parts can be assembled from other components by default"
msgstr "默认情况下,元件可由其他零件组装而成"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "组件"
@@ -2931,7 +2935,7 @@ msgstr "可购买"
msgid "Parts are purchaseable by default"
msgstr "默认情况下可购买零件"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "可销售"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "记录生成报告时出现的错误"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "页面大小"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "允许对当前库存量为零的物品执行库位间调拨操作"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "生产订单参考模式"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "生成生产订单参考字段所需的模式"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "要求负责人"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "必须为每个订单分配一个负责人"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "需要活动零件"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "防止为非活动零件创建生产订单"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "需要锁定零件"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "防止为未锁定的零件创建生产订单"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "需要有效的物料清单"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "除非物料清单已验证,否则禁止创建生产订单"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "需要关闭子订单"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "在所有子订单关闭之前,阻止生产订单的完成"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "外部生产订单"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "启用外部生产订单功能"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr "需要外部生产订单"
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr "从外部供应商订购组装好的零件时,需要外部生产订单"
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "阻止直到测试通过"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "在所有必要的测试通过之前,阻止产出完成"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "启用订单退货"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "在用户界面中启用订单退货功能"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "退货订单参考模式"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "生成退货订单参考字段所需的模式"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "编辑已完成的退货订单"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "允许编辑已完成的退货订单"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "销售订单参考模式"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "生成销售订单参考字段所需参照模式"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "销售订单默认配送方式"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "启用创建销售订单的默认配送功能"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "编辑已完成的销售订单"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "允许在订单配送或完成后编辑销售订单"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "货件需核对"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "只有所有物品均经核对,才能确认发货完成"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "标记该订单为已完成?"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "标记为已发货的销售订单将自动完成,绕过“已发货”状态"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr "阻止未完成项目测试"
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr "如果所需的物料测试未完成,则阻止将库存物料分配给销售订单"
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "采购订单参考模式"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "生成采购订单参考字段所需的模式"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "编辑已完成的采购订单"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "允许在采购订单已配送或完成后编辑订单"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "货币转换"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "收货时将物料价值折算为基准货币"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "自动完成采购订单"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "当收到所有行项目时,自动将采购订单标记为完成"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "忘记启用密码"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "在登录页面上启用忘记密码功能"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "启用注册"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "在登录页面为用户启用自行注册功能"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "启用SSO登录"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "在登录页面启用单点登录(SSO)功能"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "启用SSO注册"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "允许用户通过登录页面的SSO系统注册账号"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "启用SSO组同步"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "启用后,将自动同步InvenTree用户组与身份提供商(IdP)提供的用户组"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "SSO组属性键"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "身份提供商(IdP)返回的组信息声明属性名称"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "SSO组映射关系"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "将SSO用户组映射到本地InvenTree用户组的对应关系表。如果本地组不存在,系统会自动创建对应的用户组。"
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "移除非SSO来源的用户组"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "当用户组未被身份提供商(IdP)支持时,是否移除该用户组。禁用此选项可能导致安全风险"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "必须提供邮箱"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "用户注册时必须提供邮箱"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "自动填充SSO用户信息"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "自动从SSO账户数据中填充用户详细信息"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "发两次邮件"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "注册时询问用户他们的电子邮件两次"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "两次输入密码"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "当注册时请用户输入密码两次"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "域名白名单"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "限制注册到某些域名 (逗号分隔,以 @ 开头)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "注册默认分组"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "新用户注册时被分配的默认用户组。 如果启用了SSO组同步功能,当无法从身份提供商(IdP)分配组时才会应用此分组。"
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "强制启用多因素安全认证"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "用户必须使用多因素安全认证。"
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr "启用此设置将要求所有用户设置多元素认证。所有会话将立即断开连接。"
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "启动时检查插件"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "启动时检查全部插件是否已安装 - 在容器环境中启用"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "检查插件更新"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "启用定期检查已安装插件的更新"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "启用统一资源定位符集成"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "启用插件以添加统一资源定位符路由"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "启用导航集成"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "启用插件以集成到导航中"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "启用应用集成"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "启用插件添加应用"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "启用调度集成"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "启用插件来运行预定任务"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "启用事件集成"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "启用插件响应内部事件"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "启用界面集成"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "启用插件集成到用户界面"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "启用邮件集成"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "启用插件来处理发送/接收邮件"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "启用项目编码"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "启用项目编码来跟踪项目"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr "启用盘点"
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "启用历史库存水平及价值记录功能"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "排除外部地点"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "将外部库位的库存物料排除在盘点计算之外"
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "自动盘点周期"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr "自动库存盘点记录的间隔天数"
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr "删除旧的盘点记录条目"
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr "删除超过指定天数的库存盘点记录"
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr "库存盘点记录删除周期"
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr "库存盘点记录将在指定天数后自动删除"
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr "删除旧的库存跟踪记录"
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr "删除超过指定天数的库存跟踪记录"
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr "库存跟踪记录删除周期"
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr "库存跟踪记录将在指定天数后自动删除"
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "显示用户全名"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "显示用户全名而不是用户名"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "显示用户配置"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "在用户个人资料页展示其档案信息"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr "一周从……开始"
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr "星期几的起始日,用于在日历视图中显示"
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr "星期天"
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr "星期一"
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr "星期二"
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr "星期三"
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr "星期四"
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr "星期五"
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr "星期六"
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "启用测试站数据"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "启用测试站数据收集以获取测试结果"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "启用设备状态检测"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "启用定期 Ping 检测,确认注册设备的运行状态"
@@ -4130,49 +4142,49 @@ msgstr "最终级别的展示项目"
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr "对于没有子项的位置或类别,自动默认显示项目/零件,而不是子级别"
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "全部型号"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "未提供附件型号"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "附件模型类型无效"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "最小位置不能大于最大位置"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "最大名额不能小于最小名额"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "不允许空域。"
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "无效的域名: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "值必须大写"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "值必须是一个有效的变量标识符"
@@ -4201,12 +4213,12 @@ msgid "Supplier is Active"
msgstr "供应商已激活"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "制造商"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "公司"
@@ -4247,7 +4259,7 @@ msgid "Contact email address"
msgstr "联系人电子邮箱地址"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "联系人"
@@ -4299,7 +4311,7 @@ msgstr "税号"
msgid "Company Tax ID"
msgstr "公司税号"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "地址"
@@ -4392,7 +4404,7 @@ msgid "Link to address information (external)"
msgstr "链接地址信息 (外部)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "制造商零件"
@@ -4410,7 +4422,7 @@ msgid "Select manufacturer"
msgstr "选择制造商"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "制造商零件编号"
@@ -4439,10 +4451,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "链接的制造商零件必须引用相同的基础零件"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "供应商"
@@ -4450,7 +4462,7 @@ msgstr "供应商"
msgid "Select supplier"
msgstr "选择供应商"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "供应商库存管理单位"
@@ -4487,7 +4499,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低费用(例如库存费)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "打包"
@@ -4535,7 +4547,7 @@ msgstr "此供应商使用的默认货币"
msgid "Company Name"
msgstr "公司名称"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "有库存"
@@ -4724,7 +4736,7 @@ msgstr "原始行数据"
msgid "Errors"
msgstr "错误"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "有效"
@@ -4840,7 +4852,7 @@ msgstr "每个标签要打印的份数"
msgid "Connected"
msgstr "已连接"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "未知"
@@ -4944,7 +4956,7 @@ msgstr "属性键"
msgid "Value of the property"
msgstr "属性值"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "组"
@@ -4968,118 +4980,118 @@ msgstr "最大进度"
msgid "Maximum value for progress type, required if type=progress"
msgstr "进度类型的最大值。当 type=progress 时为必填项"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "订单参考"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "未完成"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "有项目编码"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "创建人"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "创建时间早于"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "创建时间晚于"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "有开始日期"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "开始日期早于"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "开始日期晚于"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "有目标日期"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "目标日期早于"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "目标日期晚于"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr "更新时间早于"
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr "更新时间晚于"
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "有定价"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "完成时间早于"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "完成时间晚于"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "外部生产订单"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "订单"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "订单完成"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "内部零件"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "订单待定"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "已完成"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "有配送"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr "未找到发货记录"
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "采购订单"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5087,14 +5099,14 @@ msgstr "采购订单"
msgid "Sales Order"
msgstr "销售订单"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "退货订单"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5137,11 +5149,11 @@ msgstr "地址与所选公司不匹配"
msgid "Order description (optional)"
msgstr "订单描述 (可选)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "为此订单选择项目编码"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "链接到外部页面"
@@ -5153,7 +5165,7 @@ msgstr "开始日期"
msgid "Scheduled start date for this order"
msgstr "本订单的预定开始日期"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "预计日期"
@@ -5186,487 +5198,487 @@ msgstr "此订单的联系人"
msgid "Company address for this order"
msgstr "此订单的公司地址"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "订单参考"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "狀態"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "采购订单状态"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "订购物品的公司"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "供应商参考"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "供应商订单参考代码"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "接收人"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "订单完成日期"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "目的地"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "接收物品的目标"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "零件供应商必须与采购订单供应商匹配"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "行项目与采购订单不匹配"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "行项目缺少关联零件"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "数量必须是正数"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr "序列号不能分配给虚拟件"
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "客户"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "出售物品的公司"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "销售订单状态"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "客户参考 "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "客户订单参考代码"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "发货日期"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "发货人"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "订单已完成"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "订单已取消"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "只有未结订单才能标记为已完成"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "由于发货不完整,订单无法完成"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "由于缺货,订单无法完成"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "订单无法完成,因为行项目不完整"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "订单已锁定,不可修改"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "项目数量"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr "行号"
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr "此项目的行号(可选)"
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "行项目参考"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "行项目注释"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "此行项目的目标日期 (留空以使用订单中的目标日期)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "行项目描述 (可选)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "此行的附加上下文"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "单位价格"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "采购订单行项目"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "供应商零件必须与供应商匹配"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "生产订单必须标记为外部"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "生产订单仅可关联至装配零件"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "生产订单零件必须与行项目零件一致"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr "装配零件需要外部生产订单"
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "供应商零件"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "已接收"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "收到的物品数量"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "采购价格"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "每单位的采购价格"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "外部生产订单需由此行项目履行"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "采购订单附加行"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "销售订单行项目"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "只有可销售的零件才能分配给销售订单"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "售出价格"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "单位售出价格"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "已配送"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "发货数量"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "销售订单发货"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "收货地址必须与该客户的资料一致"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "本次发货的收货地址"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "发货日期"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "送达日期"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "装运交货日期"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "审核人"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "检查此装运的用户"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "配送"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "配送单号"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "跟踪单号"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "配送跟踪信息"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "发票编号"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "相关发票的参考号"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "货物已发出"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "发货没有分配库存项目"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "货件必须先经核对,方可标记为完成"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "销售订单加行"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "销售订单分配"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "库存项目尚未分配"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "无法将库存项目分配给具有不同零件的行"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "无法将库存分配给没有零件的生产线"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "分配数量不能超过库存数量"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "分配的数量必须大于零"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "序列化库存项目的数量必须为1"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "销售订单与发货不匹配"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "发货与销售订单不匹配"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "行"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "销售订单发货参考"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "项目"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "选择要分配的库存项目"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "输入库存分配数量"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "退货订单参考"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "退回物品的公司"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "退货订单状态"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "退货订单行项目"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "必须指定库存项"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "退回数量超过库存数量"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "退回数量必须大于零"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "序列化库存项的数量无效"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "选择要从客户处退回的商品"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "接收日期"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr "收到此退货的日期"
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "结果"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "该行项目的结果"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "与此行项目的退货或维修相关的成本"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "退货订单附加行"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5694,7 +5706,7 @@ msgstr "复制额外行"
msgid "Copy extra line items from the original order"
msgstr "从原始订单复制额外的行项目"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "复制参数"
@@ -5786,11 +5798,11 @@ msgstr "合并项目"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "将具有相同零件、目的地和目标日期的项目合并到一个行项目中"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "库存量单位"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "内部零件编号"
@@ -5827,7 +5839,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "输入入库项目的批号"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "有效期至"
@@ -6058,123 +6070,131 @@ msgstr "逾期退货订单"
msgid "Return order {ro} is now overdue"
msgstr "退货订单 {ro} 现已逾期"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "已加星标"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "按星标类别筛选"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "深度"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "按类别深度筛选"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "顶级"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "按顶级类别筛选"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "级联"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "在筛选结果中包含子类别"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "父类"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "按父类别筛选"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "排除指定类别下的子类别"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "有结果"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "是变体"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "是修订版本"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "有修订版本"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "物料清单合规"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "级联分类"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "如果为真,则包含给定分类下的所有子分类中的项目"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "按数字分类ID或字面值 \"null\" 进行筛选"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr "装配零件已启用"
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr "装配零件可追踪"
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "装配部份是可测试的"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr "装配零件已锁定"
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr "元器件已激活"
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr "该零部件可追溯"
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "组件部份是可测试的"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr "该零部件是一个装配件"
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr "该零部件为虚拟件"
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr "有可用库存"
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "使用"
@@ -6215,7 +6235,7 @@ msgstr "此类别零件的默认关键字"
msgid "Icon"
msgstr "图标"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "图标(可选)"
@@ -6351,7 +6371,7 @@ msgstr "提高搜索结果可见性的零件关键字"
msgid "Part category"
msgstr "零件类别"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "内部零件号 IPN"
@@ -6360,7 +6380,7 @@ msgstr "内部零件号 IPN"
msgid "Part revision or version number"
msgstr "零件修订版本或版本号"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "版本"
@@ -6384,7 +6404,7 @@ msgstr "默认到期"
msgid "Expiry time (in days) for stock items of this part"
msgstr "此零件库存项的过期时间 (天)"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "最低库存"
@@ -6392,7 +6412,7 @@ msgstr "最低库存"
msgid "Minimum allowed stock level"
msgstr "允许的最小库存量"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr "最大库存"
@@ -6633,7 +6653,7 @@ msgid "Total available stock at time of stocktake"
msgstr "盘点时可用库存总额"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "日期"
@@ -6761,7 +6781,7 @@ msgstr "子零件"
msgid "Select part to be used in BOM"
msgstr "选择要用于物料清单的零件"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr "数量"
@@ -6913,351 +6933,351 @@ msgstr "上级类别"
msgid "Parent part category"
msgstr "上级零件类别"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "子类别"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "结果"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "根据该模板记录的结果数量"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "购买此库存项的货币"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "文件不是一个图片"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "原始零件"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "选择要复制的原始零件"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "复制图片"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "从原零件复制图片"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "复制物料清单"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "从原始零件复制材料清单"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "从原始零件复制参数数据"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "复制备注"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "从原始零件复制备注"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "复制测试"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "从原始零件复制测试模板"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "初始化库存数量"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "指定此零件的初始库存数量。如果数量为零,则不添加任何库存。"
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "初始化库存地点"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "初始化指定此零件的库存地点"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "选择供应商(或为空以跳过)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "选择制造商(或为空)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "制造商零件号"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "所选公司不是一个有效的供应商"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "所选公司不是一个有效的制造商"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "与此制造商零件编号 (MPN) 的相匹配的制造商零件已存在"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "匹配此库存单位 (SKU) 的供应商零件已存在"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "类别名称"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "正在生产"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "目前正在生产的零件数量"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "此零件计划待产数量"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "库存项"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "修订"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "库存总量"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "未分配的库存"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "变体库存"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "重复零件"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "从另一个零件复制初始数据"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "初始库存"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "创建具有初始库存数量的零件"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "供应商信息"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "添加此零件的初始供应商信息"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "复制类别参数"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "从选择的零件复制参数模版"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "现有的图片"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "现有零件图片的文件名"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "图片不存在"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "验证整个物料清单"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "可以创建"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "生产订单必填项"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "分配到生产订单"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "销售订单必填项"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "分配到销售订单"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr "内部零件号"
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr "零件描述"
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "选择一个物料,以生成该物料(及其所有变型物料)的盘点信息"
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "选择一个分类,以包含该分类(及其子分类)下的所有物料"
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "选择一个库位,以包含该库位(含子库位)中有库存的所有物料"
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr "生成盘点条目"
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr "保存所选物料的盘点条目"
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr "生成报告"
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr "为所选物料生成盘点报告"
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "最低价格"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "覆盖已计算的最低价格值"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "最低价格货币"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "最高价格"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "覆盖已计算的最高价格值"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "最高价格货币"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "更新"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "更新这个零件的价格"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "无法将所提供的货币转换为 {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "最低价格不能高于最高价格。"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "最高价格不能低于最低价格"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr "此商品所需数量(可包含单位)"
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "选择父装配"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "选择零部件"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr "无效的数量格式"
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "选择要复制物料清单的零件"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "移除现有数据"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "复制前删除现有的物料清单项目"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "包含继承的"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "包含从模板零件继承的物料清单项目"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "跳过无效行"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "启用此选项以跳过无效行"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "复制替代品零件"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "复制物料清单项目时复制替代品零件"
@@ -7328,91 +7348,91 @@ msgstr "未指定操作"
msgid "No matching action found"
msgstr "未找到指定操作"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "未找到匹配条形码数据"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "找到匹配条形码数据"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "不支持模型"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "找不到模型实例"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "条形码匹配现有项目"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "没有找到匹配的零件数据"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "没有找到匹配的供应商零件"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "找到多个匹配的供应商零件"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "没有找到匹配条形码数据的插件"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "匹配的供应商零件"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "项目已被接收"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "没有匹配供应商条形码的插件"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "找到多个匹配的行项目"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "未找到匹配的行项目"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "未提供销售订单"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "条形码与现有的库存项不匹配"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "库存项与行项目不匹配"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "可用库存不足"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "库存项已分配到销售订单"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "没有足够的信息"
@@ -7994,7 +8014,7 @@ msgstr "边框"
msgid "Print a border around each label"
msgstr "打印每个标签的边框"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "横屏模式"
@@ -8074,77 +8094,77 @@ msgstr "为扫描 TME 条形码提供支持"
msgid "The Supplier which acts as 'TME'"
msgstr "作为‘TME’的供应商"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr "只有超级用户帐户可以管理插件"
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "插件安装已禁用"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr "没有为安装提供软件包名称或URL"
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr "包名或 URL 中有无效字符"
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "插件安装成功"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "插件安装到 {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "在插件仓库中找不到插件"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "插件不是一个打包的插件"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "找不到插件包名称"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "只有员工用户可以管理插件"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "插件卸载已禁用"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "插件无法卸载,因为它目前处于激活状态"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr "该插件为系统必需组件,无法卸载"
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr "该插件为示例插件,无法卸载"
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr "该插件为系统内置组件,无法卸载"
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "插件未安装"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "未找到插件安装记录"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "插件卸载成功"
@@ -8196,21 +8216,21 @@ msgstr "软件包插件"
msgid "Plugin"
msgstr "插件"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "未找到作者"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "插件 '{p}' 与当前 InvenTree 版本{v} 不兼容"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "插件所需最低版本 {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "插件所需最高版本 {v}"
@@ -8483,136 +8503,136 @@ msgstr "法律"
msgid "Letter"
msgstr "字母"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "已存在具有此名称的模板"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "模版名称"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "模板说明"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "修订编号 (自动增量)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "打印时附加到模型"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "打印时将报告输出保存为附件与链接模型实例"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "文件名样式"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "生成文件名模式"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "模板已启用"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "模版的目标模型类型"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "筛选器"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "模版查询筛选器 (逗号分隔的键值对列表)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "模板包文件"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "PDF 报告的页面大小"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "横向渲染报告"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "合并"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr "针对选定项目生成独立报"
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "基于模板 {self.name} 生成的报告"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr "模板语法错误"
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr "报告渲染错误"
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "报告生成错误"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr "报告合并输出错误"
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "宽度 [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "标签宽度,以毫米为单位。"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "高度 [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "标签高度,以毫米为单位。"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "标签打印错误"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "代码片段"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "报告代码片段文件"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "代码片段文件描述"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "资产"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "报告资产文件"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "资产文件描述"
@@ -8768,200 +8788,200 @@ msgstr "没有结果"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr "无效的媒体文件路径"
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr "无效的静态文件路径"
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr "未找到资源文件"
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "找不到图片文件"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr "未指定图片文件"
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "parpart_image 标签需要一个零件实例"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "公司_图片标签需要一个公司实例"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "按位置深度筛选"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "按顶级位置筛选"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "在筛选结果中包含子地点"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "上级地点"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "按上级位置筛选"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "零件名称 (不区分大小写)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "零件名称包含 (不区分大小写)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "零件名称 (正则表达式)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "内部零件号 (不区分大小写)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "内部零件号 (不区分大小写)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "内部零件号 (正则表达式)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "最低库存"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "最大库存"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "状态代码"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "外部地点"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "被生产订单消耗"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "安装于其他库存项中"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "零件树"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "更新时间早于"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "更新时间晚于"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "盘点时间早于"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "盘点时间晚于"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "过期日期前"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "过期日期后"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "过期"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr "提供库存项的主键(PK)以排除该项及其所有子项"
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr "级联位置"
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr "若为真,则包含给定位置的所有子位置中的项目"
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr "按数字位置ID或字母“null”筛选"
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "请先输入数量"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "必须提供有效的零件"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "给定的供应商零件不存在"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "供应商零件有定义的包装大小,但 use_pack_size 标志未设置"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "不能为不可跟踪的零件提供序列号"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr "包含已安装项"
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr "如果为真,则包含给定库存项下已安装组件的测试结果"
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr "按数字库存项ID进行筛选"
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr "ID 为 {id} 的库存项不存在"
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr "包含零件变体"
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr "日期晚于"
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr "日期早于"
@@ -8997,7 +9017,7 @@ msgstr "选择所有者"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "库存项可能不直接位于结构库存地点,但可能位于其子地点。"
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "外部"
@@ -9103,7 +9123,7 @@ msgstr "为此库存项目选择匹配的供应商零件"
msgid "Where is this stock item located?"
msgstr "这个库存物品在哪里?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "包装此库存物品存储在"
@@ -9119,7 +9139,7 @@ msgstr "此项目是否安装在另一个项目中?"
msgid "Serial number for this item"
msgstr "此项目的序列号"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "此库存项的批号"
@@ -9208,7 +9228,7 @@ msgstr "数量不匹配序列号"
msgid "Cannot assign stock to structural location"
msgstr "无法将库存分配到结构位置"
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "测试模板不存在"
@@ -9228,7 +9248,7 @@ msgstr "库存项包含其他项目"
msgid "Stock item has been assigned to a customer"
msgstr "库存项已分配给客户"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "库存项目前正在生产"
@@ -9236,7 +9256,7 @@ msgstr "库存项目前正在生产"
msgid "Serialized stock cannot be merged"
msgstr "序列化的库存不能合并"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "复制库存项"
@@ -9252,71 +9272,71 @@ msgstr "库存项必须是同一供应商的零件"
msgid "Stock status codes must match"
msgstr "库存状态码必须匹配"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "库存项不能移动,因为它没有库存"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "库存项跟踪"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "条目注释"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "库存项测试结果"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "必须为此测试提供值"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "测试附件必须上传"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "此测试的值无效"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "测试结果"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "测试输出值"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "测验结果附件"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "测试备注"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "测试站"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "进行测试的测试站的标识符"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "已开始"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "测试开始的时间戳"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "已完成"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "测试结束的时间戳"
@@ -9400,7 +9420,7 @@ msgstr "输入新项目的序列号"
msgid "Supplier Part Number"
msgstr "供应商零件编号"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "已过期"
@@ -9430,8 +9450,8 @@ msgstr "未提供库存项"
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "数量不得超过现有库存量 ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "目标库存位置"
@@ -9503,127 +9523,131 @@ msgstr "选择要更改状态的库存项目"
msgid "No stock items selected"
msgstr "未选择库存商品"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "子位置"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "上级库存地点"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "零件必须可销售"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "物料已分配到销售订单"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "项目被分配到生产订单中"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "客户分配库存项目"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "所选公司不是客户"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "库存分配说明"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "必须提供库存物品清单"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "库存合并说明"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "允许不匹配的供应商"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "允许合并具有不同供应商零件的库存项目"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "允许不匹配的状态"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "允许合并具有不同状态代码的库存项目"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "必须提供至少两件库存物品"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "无更改"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "库存项主键值"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "库存项无现货"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr "库存项已有现货"
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr "数量不得为负"
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "库存交易记录"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr "合并至现有库存"
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "库存交易记录"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr "若可行,将退回项目合并至现有库存项"
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "下一个序列号"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "上一个序列号"
@@ -9921,7 +9945,7 @@ msgstr "权限"
msgid "Important dates"
msgstr "重要日期"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "令牌已被撤销"
@@ -9929,163 +9953,163 @@ msgstr "令牌已被撤销"
msgid "Token has expired"
msgstr "令牌已过期"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API 令牌"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API 令牌"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "令牌名称"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "自定义令牌名称"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "令牌过期日期"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "最近一次在线"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "最近使用令牌的时间"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "撤销"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "权限设置"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "查看"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "查看项目的权限"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "添加"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "添加项目的权限"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "更改"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "编辑项目的权限"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "删除"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "删除项目的权限"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "机器人"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "内部"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "访客"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "语言"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "用户首选语言"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "主题"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "Web界面设置为 JSON - 不要手动编辑!"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "小部件"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "设置面板小部件为 JSON - 不要手动编辑!"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "显示名称"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "用户自定义的显示名称"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "职位"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "主要职务或职位"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "用户状态信息"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "用户地址信息"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "用户正在积极使用系统"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "用户首选联系信息"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "用户类型"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "请选择用户类型?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "组织"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "用户主要组织/附属关系"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "主组"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "用户主组"
diff --git a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po
index e1461fa4fa..8368747042 100644
--- a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po
+++ b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2026-06-17 22:11+0000\n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"POT-Creation-Date: 2026-06-24 14:25+0000\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Language: zh_TW\n"
@@ -17,39 +17,39 @@ msgstr ""
"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 250\n"
-#: InvenTree/api.py:368
+#: InvenTree/api.py:369
msgid "API endpoint not found"
msgstr "未找到 API 端點"
-#: InvenTree/api.py:441
+#: InvenTree/api.py:442
msgid "List of items must be provided for bulk operation"
msgstr "必須提供項目清單以進行大量操作"
-#: InvenTree/api.py:448
+#: InvenTree/api.py:449
msgid "Items must be provided as a list"
msgstr "項目必須以列表形式提供"
-#: InvenTree/api.py:456
+#: InvenTree/api.py:457
msgid "Invalid items list provided"
msgstr "提供了無效的單位"
-#: InvenTree/api.py:461
+#: InvenTree/api.py:462
msgid "All filter must only be used with true"
msgstr "all 篩選器只能在值為 true 時使用"
-#: InvenTree/api.py:466
+#: InvenTree/api.py:467
msgid "No items match the provided criteria"
msgstr "沒有項目符合所提供的條件"
-#: InvenTree/api.py:490
+#: InvenTree/api.py:491
msgid "No data provided"
msgstr "未提供資料"
-#: InvenTree/api.py:506
+#: InvenTree/api.py:507
msgid "This field must be unique."
msgstr "此欄位須唯一值。"
-#: InvenTree/api.py:835
+#: InvenTree/api.py:836 InvenTree/models.py:1345
msgid "User does not have permission to view this model"
msgstr "用户沒有權限查閲當前模型。"
@@ -65,11 +65,11 @@ msgstr "郵箱地址已確認"
msgid "You must type the same email each time."
msgstr "您必須每次輸入相同的電子郵件。"
-#: InvenTree/auth_overrides.py:132 InvenTree/auth_overrides.py:139
+#: InvenTree/auth_overrides.py:135 InvenTree/auth_overrides.py:142
msgid "The provided primary email address is not valid."
msgstr "提供的主電子郵件地址無效。"
-#: InvenTree/auth_overrides.py:145
+#: InvenTree/auth_overrides.py:148
msgid "The provided email domain is not approved."
msgstr "提供的郵箱域名未被批准。"
@@ -88,7 +88,7 @@ msgid "Could not convert {original} to {unit}"
msgstr "不能將 {original} 轉換到 {unit}"
#: InvenTree/conversion.py:289 InvenTree/conversion.py:303
-#: InvenTree/helpers.py:612 order/models.py:797 order/models.py:1092
+#: InvenTree/helpers.py:612 order/models.py:798 order/models.py:1093
#: part/models.py:3999
msgid "Invalid quantity provided"
msgstr "提供的數量無效"
@@ -105,22 +105,22 @@ msgstr "輸入日期"
msgid "Invalid decimal value"
msgstr "無效的十進位數值"
-#: InvenTree/fields.py:218 InvenTree/models.py:1250 build/serializers.py:499
+#: InvenTree/fields.py:218 InvenTree/models.py:1251 build/serializers.py:499
#: build/serializers.py:549 build/serializers.py:1744 company/models.py:824
-#: order/models.py:2037
+#: order/models.py:2039
#: report/templates/report/inventree_build_order_report.html:172
-#: stock/models.py:3063 stock/models.py:3187 stock/serializers.py:749
-#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1440
-#: stock/serializers.py:1529 stock/serializers.py:1728
+#: stock/models.py:3122 stock/models.py:3246 stock/serializers.py:749
+#: stock/serializers.py:925 stock/serializers.py:1067 stock/serializers.py:1451
+#: stock/serializers.py:1540 stock/serializers.py:1748
msgid "Notes"
msgstr "備註"
-#: InvenTree/format.py:166
+#: InvenTree/format.py:159
#, python-brace-format
msgid "Value '{name}' does not appear in pattern format"
msgstr "值' {name}' 未出現在模式格式中"
-#: InvenTree/format.py:177
+#: InvenTree/format.py:170
msgid "Provided value does not match required pattern: "
msgstr "提供的值與所需模式不匹配:"
@@ -164,51 +164,51 @@ msgstr "從這個值中刪除 HTML 標籤"
msgid "Data contains prohibited markdown content"
msgstr "資料包含被禁止的 Markdown 內容"
-#: InvenTree/helpers_model.py:109
+#: InvenTree/helpers_model.py:104
msgid "Invalid URL: no hostname"
msgstr "無效的 URL:沒有主機名稱"
-#: InvenTree/helpers_model.py:114
+#: InvenTree/helpers_model.py:109
msgid "Invalid URL: hostname could not be resolved"
msgstr "無效的 URL:無法解析主機名稱"
-#: InvenTree/helpers_model.py:120
+#: InvenTree/helpers_model.py:115
msgid "URL points to a private or reserved IP address"
msgstr "URL 指向私有或保留的 IP 地址"
-#: InvenTree/helpers_model.py:197
+#: InvenTree/helpers_model.py:192
msgid "Too many redirects"
msgstr "重新導向次數過多"
-#: InvenTree/helpers_model.py:202
+#: InvenTree/helpers_model.py:197
msgid "Connection error"
msgstr "連接錯誤"
-#: InvenTree/helpers_model.py:207 InvenTree/helpers_model.py:216
+#: InvenTree/helpers_model.py:202 InvenTree/helpers_model.py:211
msgid "Server responded with invalid status code"
msgstr "服務器響應狀態碼無效"
-#: InvenTree/helpers_model.py:212
+#: InvenTree/helpers_model.py:207
msgid "Exception occurred"
msgstr "發生異常"
-#: InvenTree/helpers_model.py:222
+#: InvenTree/helpers_model.py:217
msgid "Server responded with invalid Content-Length value"
msgstr "服務器響應的內容長度值無效"
-#: InvenTree/helpers_model.py:225
+#: InvenTree/helpers_model.py:220
msgid "Image size is too large"
msgstr "圖片尺寸過大"
-#: InvenTree/helpers_model.py:237
+#: InvenTree/helpers_model.py:232
msgid "Image download exceeded maximum size"
msgstr "圖片下載超出最大尺寸"
-#: InvenTree/helpers_model.py:242
+#: InvenTree/helpers_model.py:237
msgid "Remote server returned empty response"
msgstr "遠程服務器返回了空響應"
-#: InvenTree/helpers_model.py:250
+#: InvenTree/helpers_model.py:245
msgid "Supplied URL is not a valid image file"
msgstr "提供的 URL 不是一個有效的圖片文件"
@@ -220,117 +220,121 @@ msgstr "登入此應用程式"
msgid "Email"
msgstr "電子郵件"
-#: InvenTree/middleware.py:192
+#: InvenTree/middleware.py:126
+msgid "CSRF verification failed. Ensure INVENTREE_SITE_URL and INVENTREE_TRUSTED_ORIGINS are configured correctly."
+msgstr ""
+
+#: InvenTree/middleware.py:218
msgid "You must enable two-factor authentication before doing anything else."
msgstr "在進行任何其他操作前,必須先啟用雙因素驗證。"
-#: InvenTree/models.py:128
+#: InvenTree/models.py:129
msgid "Error running plugin validation"
msgstr "驗證外掛程式時發生錯誤"
-#: InvenTree/models.py:210
+#: InvenTree/models.py:211
msgid "Metadata must be a python dict object"
msgstr "Metadata必須是一個Python Dictionary物件"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:217
msgid "Plugin Metadata"
msgstr "外掛程式Metadata"
-#: InvenTree/models.py:217
+#: InvenTree/models.py:218
msgid "JSON metadata field, for use by external plugins"
msgstr "外掛程式使用的JSON Metadata欄位"
-#: InvenTree/models.py:400
+#: InvenTree/models.py:401
msgid "Improperly formatted pattern"
msgstr "格式錯誤"
-#: InvenTree/models.py:407
+#: InvenTree/models.py:408
msgid "Unknown format key specified"
msgstr "指定了不明的格式鍵值"
-#: InvenTree/models.py:413
+#: InvenTree/models.py:414
msgid "Missing required format key"
msgstr "缺少必須的格式鍵值"
-#: InvenTree/models.py:424
+#: InvenTree/models.py:425
msgid "Reference field cannot be empty"
msgstr "參考欄位不能空白"
-#: InvenTree/models.py:432
+#: InvenTree/models.py:433
msgid "Reference must match required pattern"
msgstr "參考欄位並須符合格式"
-#: InvenTree/models.py:463
+#: InvenTree/models.py:464
msgid "Reference number is too large"
msgstr "參考編號過大"
-#: InvenTree/models.py:918
+#: InvenTree/models.py:919
msgid "Invalid choice"
msgstr "無效的選項"
-#: InvenTree/models.py:1039 common/models.py:1443 common/models.py:1870
+#: InvenTree/models.py:1040 common/models.py:1443 common/models.py:1870
#: common/models.py:2303 common/models.py:2428 common/models.py:2725
#: common/serializers.py:672 generic/states/serializers.py:20
#: machine/models.py:25 part/models.py:1106 plugin/models.py:54
-#: report/models.py:221 stock/models.py:87
+#: report/models.py:222 stock/models.py:87
msgid "Name"
msgstr "名稱"
-#: InvenTree/models.py:1045 build/models.py:265 common/models.py:180
+#: InvenTree/models.py:1046 build/models.py:265 common/models.py:180
#: common/models.py:2435 common/models.py:2576 common/models.py:2740
#: company/models.py:559 company/models.py:815 order/models.py:487
-#: order/models.py:2082 part/models.py:1129 report/models.py:227
-#: report/models.py:858 report/models.py:884
+#: order/models.py:2084 part/models.py:1129 report/models.py:228
+#: report/models.py:872 report/models.py:898
#: report/templates/report/inventree_build_order_report.html:117
#: stock/models.py:93
msgid "Description"
msgstr "描述"
-#: InvenTree/models.py:1046 stock/models.py:94
+#: InvenTree/models.py:1047 stock/models.py:94
msgid "Description (optional)"
msgstr "描述(選填)"
-#: InvenTree/models.py:1061 common/models.py:3050
+#: InvenTree/models.py:1062 common/models.py:3050
msgid "Path"
msgstr "路徑"
-#: InvenTree/models.py:1166
+#: InvenTree/models.py:1167
msgid "Duplicate names cannot exist under the same parent"
msgstr "同一個上層元件下不能有重複的名字"
-#: InvenTree/models.py:1250
+#: InvenTree/models.py:1251
msgid "Markdown notes (optional)"
msgstr "Markdown 註記(選填)"
-#: InvenTree/models.py:1300
+#: InvenTree/models.py:1301
msgid "Barcode Data"
msgstr "條碼資料"
-#: InvenTree/models.py:1301
+#: InvenTree/models.py:1302
msgid "Third party barcode data"
msgstr "第三方條碼資料"
-#: InvenTree/models.py:1307
+#: InvenTree/models.py:1308
msgid "Barcode Hash"
msgstr "條碼雜湊值"
-#: InvenTree/models.py:1308
+#: InvenTree/models.py:1309
msgid "Unique hash of barcode data"
msgstr "條碼資料的唯一雜湊值"
-#: InvenTree/models.py:1389
+#: InvenTree/models.py:1398
msgid "Existing barcode found"
msgstr "發現現有條碼"
-#: InvenTree/models.py:1489
+#: InvenTree/models.py:1498
msgid "Server Error"
msgstr "伺服器錯誤"
-#: InvenTree/models.py:1490
+#: InvenTree/models.py:1499
msgid "An error has been logged by the server."
msgstr "伺服器紀錄了一個錯誤。"
-#: InvenTree/models.py:1532 common/models.py:1781
+#: InvenTree/models.py:1541 common/models.py:1781
#: report/templates/report/inventree_bill_of_materials_report.html:126
#: report/templates/report/inventree_bill_of_materials_report.html:148
#: report/templates/report/inventree_return_order_report.html:35
@@ -345,7 +349,7 @@ msgstr "必須是有效的數字"
msgid "Currency"
msgstr "貨幣"
-#: InvenTree/serializers.py:408 part/serializers.py:1407
+#: InvenTree/serializers.py:408 part/serializers.py:1418
msgid "Select currency from available options"
msgstr "從可用選項中選擇貨幣"
@@ -521,11 +525,11 @@ msgstr "中文 (簡體)"
msgid "Chinese (Traditional)"
msgstr "中文 (繁體)"
-#: InvenTree/tasks.py:668
+#: InvenTree/tasks.py:677
msgid "Update Available"
msgstr "有可用更新"
-#: InvenTree/tasks.py:669
+#: InvenTree/tasks.py:678
msgid "An update for InvenTree is available"
msgstr "有新的 InvenTree 更新可用"
@@ -537,7 +541,7 @@ msgstr "無效的物理單位"
msgid "Not a valid currency code"
msgstr "無效的貨幣代碼"
-#: build/api.py:57 order/api.py:120 order/api.py:289 order/api.py:1444
+#: build/api.py:57 order/api.py:118 order/api.py:287 order/api.py:1442
#: order/serializers.py:128
msgid "Order Status"
msgstr "訂單狀態"
@@ -546,23 +550,23 @@ msgstr "訂單狀態"
msgid "Parent Build"
msgstr "上層生產工單"
-#: build/api.py:87 build/api.py:1026 order/api.py:566 order/api.py:791
-#: order/api.py:1237 order/api.py:1548 order/api.py:1839 order/api.py:2029
-#: stock/api.py:579
+#: build/api.py:87 build/api.py:1042 order/api.py:564 order/api.py:789
+#: order/api.py:1235 order/api.py:1546 order/api.py:1837 order/api.py:2027
+#: stock/api.py:593
msgid "Include Variants"
msgstr "包含變體"
-#: build/api.py:103 build/api.py:479 build/api.py:1040 build/models.py:283
+#: build/api.py:103 build/api.py:477 build/api.py:1056 build/models.py:283
#: build/serializers.py:1169 build/serializers.py:1345
#: build/serializers.py:1438 company/models.py:1034 company/serializers.py:426
-#: order/api.py:317 order/api.py:321 order/api.py:948 order/api.py:1250
-#: order/api.py:1253 order/api.py:2042 order/api.py:2045 order/api.py:2199
-#: order/models.py:2214 order/models.py:2382 order/models.py:2383
-#: order/models.py:3763 order/models.py:3764 part/api.py:1153 part/api.py:1156
-#: part/api.py:1373 part/models.py:527 part/models.py:3386 part/models.py:3529
+#: order/api.py:315 order/api.py:319 order/api.py:946 order/api.py:1248
+#: order/api.py:1251 order/api.py:2040 order/api.py:2043 order/api.py:2197
+#: order/models.py:2216 order/models.py:2384 order/models.py:2385
+#: order/models.py:3766 order/models.py:3767 part/api.py:1167 part/api.py:1170
+#: part/api.py:1387 part/models.py:527 part/models.py:3386 part/models.py:3529
#: part/models.py:3587 part/models.py:3608 part/models.py:3630
#: part/models.py:3771 part/models.py:4093 part/models.py:4520
-#: part/serializers.py:1356 part/serializers.py:2020
+#: part/serializers.py:1367 part/serializers.py:2031
#: report/templates/report/inventree_bill_of_materials_report.html:110
#: report/templates/report/inventree_bill_of_materials_report.html:137
#: report/templates/report/inventree_build_order_report.html:109
@@ -572,7 +576,7 @@ msgstr "包含變體"
#: report/templates/report/inventree_sales_order_shipment_report.html:28
#: report/templates/report/inventree_stock_location_report.html:102
#: report/templates/report/inventree_transfer_order_report.html:25
-#: stock/api.py:592 stock/api.py:1560 stock/serializers.py:121
+#: stock/api.py:606 stock/api.py:1571 stock/serializers.py:121
#: stock/serializers.py:173 stock/serializers.py:424 stock/serializers.py:610
#: stock/serializers.py:958 templates/email/build_order_completed.html:17
#: templates/email/build_order_required_stock.html:17
@@ -583,9 +587,9 @@ msgstr "包含變體"
msgid "Part"
msgstr "零件"
-#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:987
-#: part/api.py:1384 part/models.py:412 part/models.py:1147 part/models.py:3658
-#: part/serializers.py:1366 part/serializers.py:1791 stock/api.py:879
+#: build/api.py:123 build/api.py:126 build/serializers.py:1452 part/api.py:1001
+#: part/api.py:1398 part/models.py:412 part/models.py:1147 part/models.py:3658
+#: part/serializers.py:1377 part/serializers.py:1802 stock/api.py:893
msgid "Category"
msgstr "類別"
@@ -593,7 +597,7 @@ msgstr "類別"
msgid "Ancestor Build"
msgstr "可測試部分"
-#: build/api.py:155 order/api.py:138
+#: build/api.py:155 order/api.py:136
msgid "Assigned to me"
msgstr "分配給我"
@@ -601,11 +605,11 @@ msgstr "分配給我"
msgid "Assigned To"
msgstr "負責人"
-#: build/api.py:205 stock/api.py:922
+#: build/api.py:205 stock/api.py:936
msgid "Created before"
msgstr "建立於之前"
-#: build/api.py:209 stock/api.py:926
+#: build/api.py:209 stock/api.py:940
msgid "Created after"
msgstr "建立於之後"
@@ -641,99 +645,99 @@ msgstr "完成於之前"
msgid "Completed after"
msgstr "完成於之後"
-#: build/api.py:252 order/api.py:243
+#: build/api.py:252 order/api.py:241
msgid "Min Date"
msgstr "最小日期"
-#: build/api.py:275 order/api.py:262
+#: build/api.py:275 order/api.py:260
msgid "Max Date"
msgstr "最大日期"
-#: build/api.py:300 build/api.py:303 part/api.py:198 stock/api.py:988
+#: build/api.py:300 build/api.py:303 part/api.py:199 stock/api.py:1002
msgid "Exclude Tree"
msgstr "排除樹"
-#: build/api.py:418
+#: build/api.py:416
msgid "Build must be cancelled before it can be deleted"
msgstr "工單必須被取消才能被刪除"
-#: build/api.py:462 build/serializers.py:1379 part/models.py:4135
+#: build/api.py:460 build/serializers.py:1379 part/models.py:4135
msgid "Consumable"
msgstr "耗材"
-#: build/api.py:465 build/serializers.py:1382 part/models.py:4129
+#: build/api.py:463 build/serializers.py:1382 part/models.py:4129
msgid "Optional"
msgstr "非必須項目"
-#: build/api.py:468 build/serializers.py:1424 common/setting/system.py:476
-#: part/models.py:1261 part/serializers.py:1736 part/serializers.py:1762
-#: stock/api.py:645
+#: build/api.py:466 build/serializers.py:1424 common/setting/system.py:476
+#: part/models.py:1261 part/serializers.py:1747 part/serializers.py:1773
+#: stock/api.py:659
msgid "Assembly"
msgstr "裝配"
-#: build/api.py:471
+#: build/api.py:469
msgid "Tracked"
msgstr "追蹤中"
-#: build/api.py:474 build/serializers.py:1385 part/models.py:1279
+#: build/api.py:472 build/serializers.py:1385 part/models.py:1279
msgid "Testable"
msgstr "可測試"
-#: build/api.py:484 order/api.py:1012 order/api.py:1434 order/api.py:2263
+#: build/api.py:482 order/api.py:1010 order/api.py:1432 order/api.py:2261
msgid "Order Outstanding"
msgstr "訂單未完成"
-#: build/api.py:494 build/serializers.py:1481 order/api.py:971
-#: order/api.py:2222
+#: build/api.py:492 build/serializers.py:1481 order/api.py:969
+#: order/api.py:2220
msgid "Allocated"
msgstr "已分配"
-#: build/api.py:503 build/models.py:1741 build/serializers.py:1398
+#: build/api.py:517 build/models.py:1741 build/serializers.py:1398
msgid "Consumed"
msgstr "已消耗"
-#: build/api.py:512 company/models.py:879 company/serializers.py:403
+#: build/api.py:526 company/models.py:879 company/serializers.py:403
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:17
#: templates/email/part_event_notification.html:18
msgid "Available"
msgstr "可用數量"
-#: build/api.py:551 build/serializers.py:1483 company/serializers.py:400
-#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:889
-#: part/serializers.py:1217 part/serializers.py:1800
+#: build/api.py:567 build/serializers.py:1483 company/serializers.py:400
+#: order/serializers.py:1388 order/serializers.py:2741 part/serializers.py:900
+#: part/serializers.py:1228 part/serializers.py:1811
msgid "On Order"
msgstr "已訂購"
-#: build/api.py:704
+#: build/api.py:720
msgid "Build not found"
msgstr "找不到生產記錄"
-#: build/api.py:1063 build/models.py:120 order/models.py:2247
+#: build/api.py:1079 build/models.py:120 order/models.py:2249
#: report/templates/report/inventree_build_order_report.html:105
#: stock/serializers.py:94 templates/email/build_order_completed.html:16
#: templates/email/overdue_build_order.html:15
msgid "Build Order"
msgstr "生產工單"
-#: build/api.py:1077 build/api.py:1081 build/serializers.py:374
+#: build/api.py:1093 build/api.py:1097 build/serializers.py:374
#: build/serializers.py:487 build/serializers.py:536 build/serializers.py:1219
-#: build/serializers.py:1225 order/api.py:1297 order/api.py:1302
-#: order/api.py:2081 order/api.py:2086 order/serializers.py:886
-#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1376
-#: stock/api.py:1014 stock/serializers.py:112 stock/serializers.py:622
-#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1522
-#: stock/serializers.py:1757 stock/serializers.py:1861
-#: stock/serializers.py:1910 templates/email/stale_stock_notification.html:18
-#: users/models.py:547
+#: build/serializers.py:1225 order/api.py:1295 order/api.py:1300
+#: order/api.py:2079 order/api.py:2084 order/serializers.py:886
+#: order/serializers.py:1026 order/serializers.py:2314 part/serializers.py:1387
+#: stock/api.py:1028 stock/serializers.py:112 stock/serializers.py:622
+#: stock/serializers.py:742 stock/serializers.py:920 stock/serializers.py:1533
+#: stock/serializers.py:1777 stock/serializers.py:1881
+#: stock/serializers.py:1972 templates/email/stale_stock_notification.html:18
+#: users/models.py:545
msgid "Location"
msgstr "地點"
-#: build/api.py:1089 part/serializers.py:1401
+#: build/api.py:1105 part/serializers.py:1412
msgid "Output"
msgstr "產出"
-#: build/api.py:1091
+#: build/api.py:1107
msgid "Filter by output stock item ID. Use 'null' to find uninstalled build items."
msgstr "依產出庫存項目 ID 篩選。使用 'null' 尋找未安裝的生產項目。"
@@ -773,9 +777,9 @@ msgstr "目標日期必須晚於開始日期"
msgid "Build Order Reference"
msgstr "生產工單代號"
-#: build/models.py:259 build/serializers.py:1376 order/models.py:696
-#: order/models.py:1427 order/models.py:2030 order/models.py:2988
-#: order/models.py:3437 part/models.py:4175
+#: build/models.py:259 build/serializers.py:1376 order/models.py:697
+#: order/models.py:1429 order/models.py:2032 order/models.py:2991
+#: order/models.py:3440 part/models.py:4175
#: report/templates/report/inventree_bill_of_materials_report.html:139
#: report/templates/report/inventree_purchase_order_report.html:35
#: report/templates/report/inventree_return_order_report.html:26
@@ -804,7 +808,7 @@ msgstr "銷售訂單代號"
msgid "Sales Order to which this build is allocated"
msgstr "分配此生產的銷售訂單"
-#: build/models.py:302 build/serializers.py:1030 order/models.py:3457
+#: build/models.py:302 build/serializers.py:1030 order/models.py:3460
#: order/serializers.py:2061
msgid "Source Location"
msgstr "來源倉儲地點"
@@ -821,7 +825,7 @@ msgstr "外部生產"
msgid "This build order is fulfilled externally"
msgstr "此生產工單由外部履行"
-#: build/models.py:320 order/models.py:3467
+#: build/models.py:320 order/models.py:3470
msgid "Destination Location"
msgstr "目標倉儲地點"
@@ -854,7 +858,7 @@ msgid "Build status code"
msgstr "生產狀態代碼"
#: build/models.py:356 build/serializers.py:361 order/serializers.py:902
-#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1695
+#: stock/models.py:1152 stock/serializers.py:86 stock/serializers.py:1706
msgid "Batch Code"
msgstr "批號"
@@ -883,8 +887,8 @@ msgstr "目標完成日期"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "生產的預計完成日期。若超過此日期則工單會逾期。"
-#: build/models.py:384 order/models.py:744 order/models.py:3027
-#: order/models.py:3486
+#: build/models.py:384 order/models.py:745 order/models.py:3030
+#: order/models.py:3489
msgid "Completion Date"
msgstr "完成日期"
@@ -900,7 +904,7 @@ msgstr "發布者"
msgid "User who issued this build order"
msgstr "發布此生產工單的使用者"
-#: build/models.py:419 common/models.py:189 order/api.py:188
+#: build/models.py:419 common/models.py:189 order/api.py:186
#: order/models.py:556 part/models.py:1359
#: report/templates/report/inventree_build_order_report.html:158
msgid "Responsible"
@@ -928,7 +932,7 @@ msgid "Priority of this build order"
msgstr "此生產工單的優先程度"
#: build/models.py:443 common/models.py:159 common/models.py:173
-#: order/api.py:174 order/models.py:496 order/models.py:2062
+#: order/api.py:172 order/models.py:496 order/models.py:2064
msgid "Project Code"
msgstr "專案代碼"
@@ -962,9 +966,9 @@ msgstr "產出與生產訂單不匹配"
#: build/models.py:1050 build/models.py:1156 build/serializers.py:287
#: build/serializers.py:337 build/serializers.py:898 build/serializers.py:1695
-#: order/models.py:794 order/serializers.py:672 order/serializers.py:897
+#: order/models.py:795 order/serializers.py:672 order/serializers.py:897
#: part/models.py:3983 stock/models.py:992 stock/models.py:1489
-#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1684
+#: stock/models.py:1990 stock/serializers.py:720 stock/serializers.py:1695
msgid "Quantity must be greater than zero"
msgstr "數量必須大於零"
@@ -999,7 +1003,7 @@ msgstr "生產對象"
#: build/models.py:1732 build/models.py:2057 build/serializers.py:273
#: build/serializers.py:322 build/serializers.py:1397 common/models.py:1373
-#: order/models.py:2002 order/models.py:2871 order/models.py:3911
+#: order/models.py:2004 order/models.py:2873 order/models.py:3914
#: order/serializers.py:1841 order/serializers.py:2407
#: order/serializers.py:2978 part/models.py:3543 part/models.py:4123
#: report/templates/report/inventree_bill_of_materials_report.html:138
@@ -1049,7 +1053,7 @@ msgstr "有序號的品項數量必須為1"
msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})"
msgstr "分配的數量({q})不能超過可用的庫存數量({a})"
-#: build/models.py:1958 order/models.py:2820 order/models.py:3875
+#: build/models.py:1958 order/models.py:2822 order/models.py:3878
msgid "Stock item is over-allocated"
msgstr "庫存品項超額分配"
@@ -1057,8 +1061,8 @@ msgstr "庫存品項超額分配"
#: order/serializers.py:1669 order/serializers.py:1690
#: order/serializers.py:2764 order/serializers.py:2785
#: report/templates/report/inventree_sales_order_shipment_report.html:29
-#: stock/api.py:1448 stock/models.py:467 stock/serializers.py:103
-#: stock/serializers.py:832 stock/serializers.py:1374 stock/serializers.py:1490
+#: stock/api.py:1462 stock/models.py:467 stock/serializers.py:103
+#: stock/serializers.py:832 stock/serializers.py:1385 stock/serializers.py:1501
msgid "Stock Item"
msgstr "庫存品項"
@@ -1082,7 +1086,7 @@ msgstr "目的庫存品項"
msgid "Build Level"
msgstr "構建等級"
-#: build/serializers.py:136 part/serializers.py:1303
+#: build/serializers.py:136 part/serializers.py:1314
msgid "Part Name"
msgstr "零件名稱"
@@ -1139,7 +1143,7 @@ msgstr "自動分配序號"
msgid "Automatically allocate required items with matching serial numbers"
msgstr "自動為需要項目分配對應的序號"
-#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1216
+#: build/serializers.py:425 order/serializers.py:1004 stock/api.py:1230
#: stock/models.py:2013
msgid "The following serial numbers already exist or are invalid"
msgstr "序號已存在或無效"
@@ -1272,7 +1276,7 @@ msgstr "生產行項目"
msgid "bom_item.part must point to the same part as the build order"
msgstr "bom_item.part 必須與生產訂單零件相同"
-#: build/serializers.py:887 stock/serializers.py:1387
+#: build/serializers.py:887 stock/serializers.py:1398
msgid "Item must be in stock"
msgstr "商品必須有庫存"
@@ -1385,8 +1389,8 @@ msgstr "安裝至"
msgid "Build"
msgstr "生產"
-#: build/serializers.py:1257 company/models.py:637 order/api.py:330
-#: order/api.py:335 order/api.py:562 order/serializers.py:664
+#: build/serializers.py:1257 company/models.py:637 order/api.py:328
+#: order/api.py:333 order/api.py:560 order/serializers.py:664
#: stock/models.py:1088 stock/serializers.py:589
msgid "Supplier Part"
msgstr "供應商零件"
@@ -1416,24 +1420,24 @@ msgid "Allow Variants"
msgstr "允許變體"
#: build/serializers.py:1400 build/serializers.py:1406 part/models.py:3862
-#: part/models.py:4512 stock/api.py:892
+#: part/models.py:4512 stock/api.py:906
msgid "BOM Item"
msgstr "物料清單項"
#: build/serializers.py:1484 order/serializers.py:1389
-#: order/serializers.py:2742 part/serializers.py:1221 part/serializers.py:1804
+#: order/serializers.py:2742 part/serializers.py:1232 part/serializers.py:1815
msgid "In Production"
msgstr "生產中"
-#: build/serializers.py:1486 part/serializers.py:880 part/serializers.py:1225
+#: build/serializers.py:1486 part/serializers.py:891 part/serializers.py:1236
msgid "Scheduled to Build"
msgstr "排程生產中"
-#: build/serializers.py:1489 part/serializers.py:913
+#: build/serializers.py:1489 part/serializers.py:924
msgid "External Stock"
msgstr "外部庫存"
-#: build/serializers.py:1490 part/serializers.py:1211 part/serializers.py:1867
+#: build/serializers.py:1490 part/serializers.py:1222 part/serializers.py:1878
msgid "Available Stock"
msgstr "可用庫存"
@@ -1527,31 +1531,31 @@ msgstr "逾期的生產訂單"
msgid "Build order {bo} is now overdue"
msgstr "生產訂單 {bo} 現已逾期"
-#: common/api.py:766
+#: common/api.py:764
msgid "Has Thumbnail"
msgstr ""
-#: common/api.py:775
+#: common/api.py:773
msgid "Is Link"
msgstr "是否鏈接"
-#: common/api.py:783
+#: common/api.py:781
msgid "Is File"
msgstr "是否為文件"
-#: common/api.py:832
+#: common/api.py:828
msgid "User does not have permission to delete these attachments"
msgstr "用户沒有權限刪除此附件"
-#: common/api.py:845
+#: common/api.py:841
msgid "User does not have permission to edit this attachment"
msgstr ""
-#: common/api.py:871
+#: common/api.py:867
msgid "User does not have permission to delete this attachment"
msgstr "用户沒有權限刪除此附件"
-#: common/api.py:1248 common/serializers.py:1009 common/serializers.py:1057
+#: common/api.py:1244 common/serializers.py:1009 common/serializers.py:1057
msgid "Selection list is locked"
msgstr "選擇列表已鎖定"
@@ -1571,8 +1575,8 @@ msgstr "未提供有效的貨幣代碼"
msgid "No plugin"
msgstr "暫無插件"
-#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:376
-#: stock/api.py:1046
+#: common/filters.py:110 company/api.py:155 company/api.py:311 stock/api.py:377
+#: stock/api.py:1060
msgid "Tags"
msgstr ""
@@ -1645,8 +1649,8 @@ msgstr "鍵字符串必須是唯一的"
#: common/models.py:2140 common/models.py:2141 common/models.py:3038
#: importer/models.py:101 part/models.py:3637 part/models.py:3665
#: plugin/models.py:392 plugin/models.py:393
-#: report/templates/report/inventree_test_report.html:105 users/models.py:124
-#: users/models.py:499
+#: report/templates/report/inventree_test_report.html:105 users/models.py:122
+#: users/models.py:497
msgid "User"
msgstr "使用者"
@@ -1654,8 +1658,8 @@ msgstr "使用者"
msgid "Price break quantity"
msgstr "批發價數量"
-#: common/models.py:1381 company/serializers.py:304 order/models.py:2099
-#: order/models.py:3324
+#: common/models.py:1381 company/serializers.py:304 order/models.py:2101
+#: order/models.py:3327
msgid "Price"
msgstr "價格"
@@ -1677,8 +1681,8 @@ msgstr "此網絡鈎子的名稱"
#: common/models.py:1448 common/models.py:2448 common/models.py:2583
#: company/models.py:194 company/models.py:783 machine/models.py:40
-#: part/models.py:1296 plugin/models.py:69 stock/api.py:648 users/models.py:193
-#: users/models.py:552 users/serializers.py:339 users/serializers.py:431
+#: part/models.py:1296 plugin/models.py:69 stock/api.py:662 users/models.py:191
+#: users/models.py:550 users/serializers.py:339 users/serializers.py:431
msgid "Active"
msgstr "激活"
@@ -1686,7 +1690,7 @@ msgstr "激活"
msgid "Is this webhook active"
msgstr "網絡鈎子是否已啓用"
-#: common/models.py:1464 users/models.py:172
+#: common/models.py:1464 users/models.py:170
msgid "Token"
msgstr "令牌"
@@ -1756,7 +1760,7 @@ msgstr "標題"
#: common/models.py:1755 common/models.py:2123 company/models.py:188
#: company/models.py:479 company/models.py:550 company/models.py:806
-#: order/models.py:502 order/models.py:2043 order/models.py:2619
+#: order/models.py:502 order/models.py:2045 order/models.py:2621
#: part/models.py:1180
#: report/templates/report/inventree_build_order_report.html:164
msgid "Link"
@@ -1826,7 +1830,7 @@ msgstr "定義"
msgid "Unit definition"
msgstr "單位定義"
-#: common/models.py:1954 common/models.py:2106 stock/models.py:3182
+#: common/models.py:1954 common/models.py:2106 stock/models.py:3241
#: stock/serializers.py:259
msgid "Attachment"
msgstr "附件"
@@ -1944,7 +1948,7 @@ msgid "State logical key that is equal to this custom state in business logic"
msgstr "等同於商業邏輯中自定義狀態的狀態邏輯鍵"
#: common/models.py:2297 common/models.py:2564 machine/serializers.py:27
-#: report/templates/report/inventree_test_report.html:104 stock/models.py:3174
+#: report/templates/report/inventree_test_report.html:104 stock/models.py:3233
msgid "Value"
msgstr "值"
@@ -2172,7 +2176,7 @@ msgstr "此參數的有效選擇 (逗號分隔)"
msgid "Selection list for this parameter"
msgstr "此參數的選擇清單"
-#: common/models.py:2770 part/models.py:3797 report/models.py:296
+#: common/models.py:2770 part/models.py:3797 report/models.py:297
msgid "Enabled"
msgstr "已啓用"
@@ -2204,8 +2208,8 @@ msgstr "模型 ID"
msgid "ID of the target model for this parameter"
msgstr "此參數的目標模型 ID"
-#: common/models.py:2979 common/setting/system.py:470 report/models.py:382
-#: report/models.py:703 report/serializers.py:117 report/serializers.py:158
+#: common/models.py:2979 common/setting/system.py:470 report/models.py:383
+#: report/models.py:717 report/serializers.py:117 report/serializers.py:158
#: stock/serializers.py:246
msgid "Template"
msgstr "模板"
@@ -2262,7 +2266,7 @@ msgstr "掃描條碼的日期和時間"
msgid "URL endpoint which processed the barcode"
msgstr "處理條碼的 URL 終點"
-#: common/models.py:3058 order/models.py:2089 plugin/serializers.py:93
+#: common/models.py:3058 order/models.py:2091 plugin/serializers.py:93
msgid "Context"
msgstr "上下文"
@@ -2279,7 +2283,7 @@ msgid "Response data from the barcode scan"
msgstr "掃描條碼的響應數據"
#: common/models.py:3073 report/templates/report/inventree_test_report.html:103
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Result"
msgstr "結果"
@@ -2384,7 +2388,7 @@ msgid "Email Threads"
msgstr "電子郵件討論串"
#: common/models.py:3366 generic/states/serializers.py:16
-#: machine/serializers.py:24 plugin/models.py:46 users/models.py:113
+#: machine/serializers.py:24 plugin/models.py:46 users/models.py:111
msgid "Key"
msgstr "鍵"
@@ -2430,7 +2434,7 @@ msgstr "{verbose_name} 已取消"
msgid "A order that is assigned to you was canceled"
msgstr "分配給您的訂單已取消"
-#: common/notifications.py:73 common/notifications.py:80 order/api.py:613
+#: common/notifications.py:73 common/notifications.py:80 order/api.py:611
msgid "Items Received"
msgstr "收到的物品"
@@ -2524,7 +2528,7 @@ msgstr "檔案名稱"
#: common/serializers.py:809 common/serializers.py:876
#: common/serializers.py:952 importer/models.py:90 report/api.py:42
-#: report/models.py:302 report/serializers.py:71
+#: report/models.py:303 report/serializers.py:71
msgid "Model Type"
msgstr "模型類型"
@@ -2669,8 +2673,8 @@ msgstr "檢查更新的頻率(設置為零以禁用)"
#: common/setting/system.py:335 common/setting/system.py:344
#: common/setting/system.py:353 common/setting/system.py:600
#: common/setting/system.py:628 common/setting/system.py:753
-#: common/setting/system.py:1190 common/setting/system.py:1206
-#: common/setting/system.py:1223
+#: common/setting/system.py:1198 common/setting/system.py:1214
+#: common/setting/system.py:1231
msgid "days"
msgstr "天"
@@ -2914,8 +2918,8 @@ msgstr "零件默認為模板"
msgid "Parts can be assembled from other components by default"
msgstr "默認情況下,元件可由其他零件組裝而成"
-#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1771
-#: part/serializers.py:1779
+#: common/setting/system.py:482 part/models.py:1267 part/serializers.py:1782
+#: part/serializers.py:1790
msgid "Component"
msgstr "組件"
@@ -2931,7 +2935,7 @@ msgstr "可購買"
msgid "Parts are purchaseable by default"
msgstr "默認情況下可購買零件"
-#: common/setting/system.py:494 part/models.py:1291 stock/api.py:649
+#: common/setting/system.py:494 part/models.py:1291 stock/api.py:663
msgid "Salable"
msgstr "可銷售"
@@ -3144,7 +3148,7 @@ msgid "Log errors which occur when generating reports"
msgstr "記錄生成報告時出現的錯誤"
#: common/setting/system.py:693 plugin/builtin/labels/label_sheet.py:30
-#: report/models.py:390
+#: report/models.py:391
msgid "Page Size"
msgstr "頁面大小"
@@ -3273,538 +3277,546 @@ msgid "Allow stock items which are not in stock to be transferred between stock
msgstr "允許非庫存的庫存項目在庫存位置之間轉移"
#: common/setting/system.py:797
+msgid "Merge stock with existing stock on transfer by default"
+msgstr ""
+
+#: common/setting/system.py:799
+msgid "Default state for merge stock on transfer behaviour. (Can be changed per transfer if desired)"
+msgstr ""
+
+#: common/setting/system.py:805
msgid "Build Order Reference Pattern"
msgstr "生產訂單參考模式"
-#: common/setting/system.py:798
+#: common/setting/system.py:806
msgid "Required pattern for generating Build Order reference field"
msgstr "生成生產訂單參考字段所需的模式"
-#: common/setting/system.py:803 common/setting/system.py:871
-#: common/setting/system.py:891 common/setting/system.py:941
-#: common/setting/system.py:963
+#: common/setting/system.py:811 common/setting/system.py:879
+#: common/setting/system.py:899 common/setting/system.py:949
+#: common/setting/system.py:971
msgid "Require Responsible Owner"
msgstr "要求負責人"
-#: common/setting/system.py:804 common/setting/system.py:872
-#: common/setting/system.py:892 common/setting/system.py:942
-#: common/setting/system.py:964
+#: common/setting/system.py:812 common/setting/system.py:880
+#: common/setting/system.py:900 common/setting/system.py:950
+#: common/setting/system.py:972
msgid "A responsible owner must be assigned to each order"
msgstr "必須為每個訂單分配一個負責人"
-#: common/setting/system.py:809
+#: common/setting/system.py:817
msgid "Require Active Part"
msgstr "需要活動零件"
-#: common/setting/system.py:810
+#: common/setting/system.py:818
msgid "Prevent build order creation for inactive parts"
msgstr "防止為非活動零件創建生產訂單"
-#: common/setting/system.py:815
+#: common/setting/system.py:823
msgid "Require Locked Part"
msgstr "需要鎖定零件"
-#: common/setting/system.py:816
+#: common/setting/system.py:824
msgid "Prevent build order creation for unlocked parts"
msgstr "防止為未鎖定的零件創建生產訂單"
-#: common/setting/system.py:821
+#: common/setting/system.py:829
msgid "Require Valid BOM"
msgstr "需要有效的物料清單"
-#: common/setting/system.py:822
+#: common/setting/system.py:830
msgid "Prevent build order creation unless BOM has been validated"
msgstr "除非物料清單已驗證,否則禁止創建生產訂單"
-#: common/setting/system.py:827
+#: common/setting/system.py:835
msgid "Require Closed Child Orders"
msgstr "需要關閉子訂單"
-#: common/setting/system.py:829
+#: common/setting/system.py:837
msgid "Prevent build order completion until all child orders are closed"
msgstr "在所有子訂單關閉之前,阻止生產訂單的完成"
-#: common/setting/system.py:835
+#: common/setting/system.py:843
msgid "External Build Orders"
msgstr "外部生產工單"
-#: common/setting/system.py:836
+#: common/setting/system.py:844
msgid "Enable external build order functionality"
msgstr "啟用外部生產工單功能"
-#: common/setting/system.py:841
+#: common/setting/system.py:849
msgid "Require External Build Orders"
msgstr ""
-#: common/setting/system.py:843
+#: common/setting/system.py:851
msgid "Require an external build order when ordering assembled parts from an external supplier"
msgstr ""
-#: common/setting/system.py:849
+#: common/setting/system.py:857
msgid "Block Until Tests Pass"
msgstr "阻止直到測試通過"
-#: common/setting/system.py:851
+#: common/setting/system.py:859
msgid "Prevent build outputs from being completed until all required tests pass"
msgstr "在所有必要的測試通過之前,阻止產出完成"
-#: common/setting/system.py:857
+#: common/setting/system.py:865
msgid "Enable Return Orders"
msgstr "啓用訂單退貨"
-#: common/setting/system.py:858
+#: common/setting/system.py:866
msgid "Enable return order functionality in the user interface"
msgstr "在用户界面中啓用訂單退貨功能"
-#: common/setting/system.py:863
+#: common/setting/system.py:871
msgid "Return Order Reference Pattern"
msgstr "退貨訂單參考模式"
-#: common/setting/system.py:865
+#: common/setting/system.py:873
msgid "Required pattern for generating Return Order reference field"
msgstr "生成退貨訂單參考字段所需的模式"
-#: common/setting/system.py:877
+#: common/setting/system.py:885
msgid "Edit Completed Return Orders"
msgstr "編輯已完成的退貨訂單"
-#: common/setting/system.py:879
+#: common/setting/system.py:887
msgid "Allow editing of return orders after they have been completed"
msgstr "允許編輯已完成的退貨訂單"
-#: common/setting/system.py:885
+#: common/setting/system.py:893
msgid "Sales Order Reference Pattern"
msgstr "銷售訂單參考模式"
-#: common/setting/system.py:886
+#: common/setting/system.py:894
msgid "Required pattern for generating Sales Order reference field"
msgstr "生成銷售訂單參考字段所需參照模式"
-#: common/setting/system.py:897
+#: common/setting/system.py:905
msgid "Sales Order Default Shipment"
msgstr "銷售訂單默認配送方式"
-#: common/setting/system.py:898
+#: common/setting/system.py:906
msgid "Enable creation of default shipment with sales orders"
msgstr "啓用創建銷售訂單的默認配送功能"
-#: common/setting/system.py:903
+#: common/setting/system.py:911
msgid "Edit Completed Sales Orders"
msgstr "編輯已完成的銷售訂單"
-#: common/setting/system.py:905
+#: common/setting/system.py:913
msgid "Allow editing of sales orders after they have been shipped or completed"
msgstr "允許在訂單配送或完成後編輯銷售訂單"
-#: common/setting/system.py:911
+#: common/setting/system.py:919
msgid "Shipment Requires Checking"
msgstr "發貨需要檢查"
-#: common/setting/system.py:913
+#: common/setting/system.py:921
msgid "Prevent completion of shipments until items have been checked"
msgstr "在項目被檢查前,防止完成發貨"
-#: common/setting/system.py:919
+#: common/setting/system.py:927
msgid "Mark Shipped Orders as Complete"
msgstr "標記該訂單為已完成?"
-#: common/setting/system.py:921
+#: common/setting/system.py:929
msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status"
msgstr "標記為已發貨的銷售訂單將自動完成,繞過“已發貨”狀態"
-#: common/setting/system.py:927
+#: common/setting/system.py:935
msgid "Enable Transfer Orders"
msgstr ""
-#: common/setting/system.py:928
+#: common/setting/system.py:936
msgid "Enable transfer order functionality in the user interface"
msgstr ""
-#: common/setting/system.py:933
+#: common/setting/system.py:941
msgid "Transfer Order Reference Pattern"
msgstr ""
-#: common/setting/system.py:935
+#: common/setting/system.py:943
msgid "Required pattern for generating Transfer Order reference field"
msgstr ""
-#: common/setting/system.py:947
+#: common/setting/system.py:955
msgid "Block Incomplete Item Tests"
msgstr ""
-#: common/setting/system.py:949
+#: common/setting/system.py:957
msgid "Prevent allocation of stock items to sales orders if required item tests are incomplete"
msgstr ""
-#: common/setting/system.py:955
+#: common/setting/system.py:963
msgid "Purchase Order Reference Pattern"
msgstr "採購訂單參考模式"
-#: common/setting/system.py:957
+#: common/setting/system.py:965
msgid "Required pattern for generating Purchase Order reference field"
msgstr "生成採購訂單參考字段所需的模式"
-#: common/setting/system.py:969
+#: common/setting/system.py:977
msgid "Edit Completed Purchase Orders"
msgstr "編輯已完成的採購訂單"
-#: common/setting/system.py:971
+#: common/setting/system.py:979
msgid "Allow editing of purchase orders after they have been shipped or completed"
msgstr "允許在採購訂單已配送或完成後編輯訂單"
-#: common/setting/system.py:977
+#: common/setting/system.py:985
msgid "Convert Currency"
msgstr "轉換幣別"
-#: common/setting/system.py:978
+#: common/setting/system.py:986
msgid "Convert item value to base currency when receiving stock"
msgstr "收貨時將項目價值換算為基準幣別"
-#: common/setting/system.py:983
+#: common/setting/system.py:991
msgid "Auto Complete Purchase Orders"
msgstr "自動完成採購訂單"
-#: common/setting/system.py:985
+#: common/setting/system.py:993
msgid "Automatically mark purchase orders as complete when all line items are received"
msgstr "當收到所有行項目時,自動將採購訂單標記為完成"
-#: common/setting/system.py:992
+#: common/setting/system.py:1000
msgid "Enable password forgot"
msgstr "忘記啓用密碼"
-#: common/setting/system.py:993
+#: common/setting/system.py:1001
msgid "Enable password forgot function on the login pages"
msgstr "在登錄頁面上啓用忘記密碼功能"
-#: common/setting/system.py:998
+#: common/setting/system.py:1006
msgid "Enable registration"
msgstr "啓用註冊"
-#: common/setting/system.py:999
+#: common/setting/system.py:1007
msgid "Enable self-registration for users on the login pages"
msgstr "在登錄頁面為用户啓用自行註冊功能"
-#: common/setting/system.py:1004
+#: common/setting/system.py:1012
msgid "Enable SSO"
msgstr "啓用單點登錄"
-#: common/setting/system.py:1005
+#: common/setting/system.py:1013
msgid "Enable SSO on the login pages"
msgstr "在登錄界面啓用單點登錄"
-#: common/setting/system.py:1010
+#: common/setting/system.py:1018
msgid "Enable SSO registration"
msgstr "啓用單點登錄註冊"
-#: common/setting/system.py:1012
+#: common/setting/system.py:1020
msgid "Enable self-registration via SSO for users on the login pages"
msgstr "允許登錄頁面上的用户通過 SSO 進行自我註冊"
-#: common/setting/system.py:1018
+#: common/setting/system.py:1026
msgid "Enable SSO group sync"
msgstr "啓用單點登錄羣組同步"
-#: common/setting/system.py:1020
+#: common/setting/system.py:1028
msgid "Enable synchronizing InvenTree groups with groups provided by the IdP"
msgstr "啓用庫存管理系統組和由身份提供者提供的組的同步功能"
-#: common/setting/system.py:1026
+#: common/setting/system.py:1034
msgid "SSO group key"
msgstr "單點登錄系統組密鑰"
-#: common/setting/system.py:1027
+#: common/setting/system.py:1035
msgid "The name of the groups claim attribute provided by the IdP"
msgstr "由身份提供者提供的組聲明屬性名稱"
-#: common/setting/system.py:1032
+#: common/setting/system.py:1040
msgid "SSO group map"
msgstr "單點登錄系統組地圖"
-#: common/setting/system.py:1034
+#: common/setting/system.py:1042
msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created."
msgstr "從單點登錄系統組組到本地庫存管理系統組的映射。如果本地組不存在,它將被創建。"
-#: common/setting/system.py:1040
+#: common/setting/system.py:1048
msgid "Remove groups outside of SSO"
msgstr "移除單點登錄系統以外的羣組"
-#: common/setting/system.py:1042
+#: common/setting/system.py:1050
msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues"
msgstr "如果分配給用户的組不是身份提供者的後端,是否應該刪除它們。禁用此設置可能會造成安全問題"
-#: common/setting/system.py:1048
+#: common/setting/system.py:1056
msgid "Email required"
msgstr "需要郵箱地址"
-#: common/setting/system.py:1049
+#: common/setting/system.py:1057
msgid "Require user to supply mail on signup"
msgstr "要求用户在註冊時提供郵件"
-#: common/setting/system.py:1054
+#: common/setting/system.py:1062
msgid "Auto-fill SSO users"
msgstr "自動填充單點登錄系統用户"
-#: common/setting/system.py:1055
+#: common/setting/system.py:1063
msgid "Automatically fill out user-details from SSO account-data"
msgstr "自動使用單點登錄系統賬户的數據填寫用户詳細信息"
-#: common/setting/system.py:1060
+#: common/setting/system.py:1068
msgid "Mail twice"
msgstr "發兩次郵件"
-#: common/setting/system.py:1061
+#: common/setting/system.py:1069
msgid "On signup ask users twice for their mail"
msgstr "註冊時詢問用户他們的電子郵件兩次"
-#: common/setting/system.py:1066
+#: common/setting/system.py:1074
msgid "Password twice"
msgstr "兩次輸入密碼"
-#: common/setting/system.py:1067
+#: common/setting/system.py:1075
msgid "On signup ask users twice for their password"
msgstr "當註冊時請用户輸入密碼兩次"
-#: common/setting/system.py:1072
+#: common/setting/system.py:1080
msgid "Allowed domains"
msgstr "域名白名單"
-#: common/setting/system.py:1074
+#: common/setting/system.py:1082
msgid "Restrict signup to certain domains (comma-separated, starting with @)"
msgstr "限制註冊到某些域名 (逗號分隔,以 @ 開頭)"
-#: common/setting/system.py:1080
+#: common/setting/system.py:1088
msgid "Group on signup"
msgstr "註冊羣組"
-#: common/setting/system.py:1082
+#: common/setting/system.py:1090
msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP."
msgstr "註冊時分配給新用户的組。 如果啓用了單點登錄系統羣組同步,此羣組僅在無法從 IdP 分配任何羣組的情況下才被設置。"
-#: common/setting/system.py:1088
+#: common/setting/system.py:1096
msgid "Enforce MFA"
msgstr "強制啓用多因素安全認證"
-#: common/setting/system.py:1089
+#: common/setting/system.py:1097
msgid "Users must use multifactor security."
msgstr "用户必須使用多因素安全認證。"
-#: common/setting/system.py:1094
+#: common/setting/system.py:1102
msgid "Enabling this setting will require all users to set up multifactor authentication. All sessions will be disconnected immediately."
msgstr "啟用此設定將要求所有使用者設定多因素驗證。所有工作階段將立即中斷連線。"
-#: common/setting/system.py:1099
+#: common/setting/system.py:1107
msgid "Check plugins on startup"
msgstr "啓動時檢查插件"
-#: common/setting/system.py:1101
+#: common/setting/system.py:1109
msgid "Check that all plugins are installed on startup - enable in container environments"
msgstr "啓動時檢查全部插件是否已安裝 - 在容器環境中啓用"
-#: common/setting/system.py:1108
+#: common/setting/system.py:1116
msgid "Check for plugin updates"
msgstr "檢查插件更新"
-#: common/setting/system.py:1109
+#: common/setting/system.py:1117
msgid "Enable periodic checks for updates to installed plugins"
msgstr "啓用定期檢查已安裝插件的更新"
-#: common/setting/system.py:1115
+#: common/setting/system.py:1123
msgid "Enable URL integration"
msgstr "啓用統一資源定位符集成"
-#: common/setting/system.py:1116
+#: common/setting/system.py:1124
msgid "Enable plugins to add URL routes"
msgstr "啓用插件以添加統一資源定位符路由"
-#: common/setting/system.py:1122
+#: common/setting/system.py:1130
msgid "Enable navigation integration"
msgstr "啓用導航集成"
-#: common/setting/system.py:1123
+#: common/setting/system.py:1131
msgid "Enable plugins to integrate into navigation"
msgstr "啓用插件以集成到導航中"
-#: common/setting/system.py:1129
+#: common/setting/system.py:1137
msgid "Enable app integration"
msgstr "啓用應用集成"
-#: common/setting/system.py:1130
+#: common/setting/system.py:1138
msgid "Enable plugins to add apps"
msgstr "啓用插件添加應用"
-#: common/setting/system.py:1136
+#: common/setting/system.py:1144
msgid "Enable schedule integration"
msgstr "啓用調度集成"
-#: common/setting/system.py:1137
+#: common/setting/system.py:1145
msgid "Enable plugins to run scheduled tasks"
msgstr "啓用插件來運行預定任務"
-#: common/setting/system.py:1143
+#: common/setting/system.py:1151
msgid "Enable event integration"
msgstr "啓用事件集成"
-#: common/setting/system.py:1144
+#: common/setting/system.py:1152
msgid "Enable plugins to respond to internal events"
msgstr "啓用插件響應內部事件"
-#: common/setting/system.py:1150
+#: common/setting/system.py:1158
msgid "Enable interface integration"
msgstr "啓用界面集成"
-#: common/setting/system.py:1151
+#: common/setting/system.py:1159
msgid "Enable plugins to integrate into the user interface"
msgstr "啓用插件集成到用户界面"
-#: common/setting/system.py:1157
+#: common/setting/system.py:1165
msgid "Enable mail integration"
msgstr "啟用郵件整合"
-#: common/setting/system.py:1158
+#: common/setting/system.py:1166
msgid "Enable plugins to process outgoing/incoming mails"
msgstr "允許模組處理寄出/接收郵件"
-#: common/setting/system.py:1164
+#: common/setting/system.py:1172
msgid "Enable project codes"
msgstr "啟用專案代碼"
-#: common/setting/system.py:1165
+#: common/setting/system.py:1173
msgid "Enable project codes for tracking projects"
msgstr "啟用專案代碼以追蹤專案"
-#: common/setting/system.py:1170
+#: common/setting/system.py:1178
msgid "Enable Stocktake"
msgstr "啟用盤點"
-#: common/setting/system.py:1172
+#: common/setting/system.py:1180
msgid "Enable functionality for recording historical stock levels and value"
msgstr "啟用記錄庫存數量及價值歷史的功能"
-#: common/setting/system.py:1178
+#: common/setting/system.py:1186
msgid "Exclude External Locations"
msgstr "排除外部地點"
-#: common/setting/system.py:1180
+#: common/setting/system.py:1188
msgid "Exclude stock items in external locations from stocktake calculations"
msgstr "從盤點計算中排除外部位置的庫存項目"
-#: common/setting/system.py:1186
+#: common/setting/system.py:1194
msgid "Automatic Stocktake Period"
msgstr "自動盤點週期"
-#: common/setting/system.py:1187
+#: common/setting/system.py:1195
msgid "Number of days between automatic stocktake recording"
msgstr "自動記錄盤點的天數間隔"
-#: common/setting/system.py:1193
+#: common/setting/system.py:1201
msgid "Delete Old Stocktake Entries"
msgstr "刪除舊的盤點項目"
-#: common/setting/system.py:1195
+#: common/setting/system.py:1203
msgid "Delete stocktake entries older than the specified number of days"
msgstr "刪除超過指定天數的盤點項目"
-#: common/setting/system.py:1201
+#: common/setting/system.py:1209
msgid "Stocktake Deletion Interval"
msgstr "盤點刪除間隔"
-#: common/setting/system.py:1203
+#: common/setting/system.py:1211
msgid "Stocktake entries will be deleted after specified number of days"
msgstr "盤點項目將在指定天數後刪除"
-#: common/setting/system.py:1210
+#: common/setting/system.py:1218
msgid "Delete Old Stock Tracking Entries"
msgstr "刪除舊庫存的追蹤紀錄"
-#: common/setting/system.py:1212
+#: common/setting/system.py:1220
msgid "Delete stock tracking entries older than the specified number of days"
msgstr "刪除超過指定天數的庫存追蹤項目"
-#: common/setting/system.py:1218
+#: common/setting/system.py:1226
msgid "Stock Tracking Deletion Interval"
msgstr "庫存追蹤刪除間隔"
-#: common/setting/system.py:1220
+#: common/setting/system.py:1228
msgid "Stock tracking entries will be deleted after specified number of days"
msgstr "庫存追蹤項目將在指定天數後刪除"
-#: common/setting/system.py:1227
+#: common/setting/system.py:1235
msgid "Display Users full names"
msgstr "顯示用户全名"
-#: common/setting/system.py:1228
+#: common/setting/system.py:1236
msgid "Display Users full names instead of usernames"
msgstr "顯示用户全名而不是用户名"
-#: common/setting/system.py:1233
+#: common/setting/system.py:1241
msgid "Display User Profiles"
msgstr "顯示使用者個人檔案"
-#: common/setting/system.py:1234
+#: common/setting/system.py:1242
msgid "Display Users Profiles on their profile page"
msgstr "在個人頁面顯示使用者檔案資訊"
-#: common/setting/system.py:1239
+#: common/setting/system.py:1247
msgid "Week Starts On"
msgstr ""
-#: common/setting/system.py:1240
+#: common/setting/system.py:1248
msgid "Starting day of the week, for display in calendar views"
msgstr ""
-#: common/setting/system.py:1243
+#: common/setting/system.py:1251
msgid "Sunday"
msgstr ""
-#: common/setting/system.py:1244
+#: common/setting/system.py:1252
msgid "Monday"
msgstr ""
-#: common/setting/system.py:1245
+#: common/setting/system.py:1253
msgid "Tuesday"
msgstr ""
-#: common/setting/system.py:1246
+#: common/setting/system.py:1254
msgid "Wednesday"
msgstr ""
-#: common/setting/system.py:1247
+#: common/setting/system.py:1255
msgid "Thursday"
msgstr ""
-#: common/setting/system.py:1248
+#: common/setting/system.py:1256
msgid "Friday"
msgstr ""
-#: common/setting/system.py:1249
+#: common/setting/system.py:1257
msgid "Saturday"
msgstr ""
-#: common/setting/system.py:1253
+#: common/setting/system.py:1261
msgid "Calendar Horizon"
msgstr ""
-#: common/setting/system.py:1255
+#: common/setting/system.py:1263
msgid "Number of months into the future to display in calendar views"
msgstr ""
-#: common/setting/system.py:1259
+#: common/setting/system.py:1267
msgid "months"
msgstr ""
-#: common/setting/system.py:1262
+#: common/setting/system.py:1270
msgid "Enable Test Station Data"
msgstr "啓用測試站數據"
-#: common/setting/system.py:1263
+#: common/setting/system.py:1271
msgid "Enable test station data collection for test results"
msgstr "啓用測試站數據收集以獲取測試結果"
-#: common/setting/system.py:1268
+#: common/setting/system.py:1276
msgid "Enable Machine Ping"
msgstr "啟用設備 Ping"
-#: common/setting/system.py:1270
+#: common/setting/system.py:1278
msgid "Enable periodic ping task of registered machines to check their status"
msgstr "啟用對已註冊機器的定期 ping 任務以檢查其狀態"
@@ -4128,49 +4140,49 @@ msgstr ""
msgid "Automatically default to showing items/parts instead of sub-levels for locations or categories with no children"
msgstr ""
-#: common/validators.py:39
+#: common/validators.py:40
msgid "All models"
msgstr "所有模型"
-#: common/validators.py:64
+#: common/validators.py:65
msgid "No attachment model type provided"
msgstr "未提供附件型號"
-#: common/validators.py:70
+#: common/validators.py:71
msgid "Invalid attachment model type"
msgstr "附件模型類型無效"
-#: common/validators.py:86
+#: common/validators.py:87
#, python-brace-format
msgid "File size exceeds maximum upload limit of {max_size} MB"
msgstr ""
-#: common/validators.py:92
+#: common/validators.py:93
msgid "Invalid file name"
msgstr ""
-#: common/validators.py:126
+#: common/validators.py:127
msgid "Minimum places cannot be greater than maximum places"
msgstr "最小位置不能大於最大位置"
-#: common/validators.py:138
+#: common/validators.py:139
msgid "Maximum places cannot be less than minimum places"
msgstr "最大名額不能小於最小名額"
-#: common/validators.py:149
+#: common/validators.py:150
msgid "An empty domain is not allowed."
msgstr "不允許空域。"
-#: common/validators.py:151
+#: common/validators.py:152
#, python-brace-format
msgid "Invalid domain name: {domain}"
msgstr "無效的域名: {domain}"
-#: common/validators.py:167
+#: common/validators.py:168
msgid "Value must be uppercase"
msgstr "值必須為大寫"
-#: common/validators.py:173
+#: common/validators.py:174
msgid "Value must be a valid variable identifier"
msgstr "值必須為有效的變數識別符"
@@ -4199,12 +4211,12 @@ msgid "Supplier is Active"
msgstr "供應商已激活"
#: company/api.py:284 company/models.py:536 company/serializers.py:452
-#: part/serializers.py:514
+#: part/serializers.py:525
msgid "Manufacturer"
msgstr "製造商"
#: company/api.py:291 company/models.py:124 company/models.py:404
-#: stock/api.py:910
+#: stock/api.py:924
msgid "Company"
msgstr "公司"
@@ -4245,7 +4257,7 @@ msgid "Contact email address"
msgstr "聯繫人電子郵箱地址"
#: company/models.py:181 company/models.py:311 order/models.py:565
-#: users/models.py:559
+#: users/models.py:557
msgid "Contact"
msgstr "聯繫人"
@@ -4297,7 +4309,7 @@ msgstr "稅籍編號"
msgid "Company Tax ID"
msgstr "公司稅籍編號"
-#: company/models.py:350 order/models.py:575 order/models.py:2564
+#: company/models.py:350 order/models.py:575 order/models.py:2566
msgid "Address"
msgstr "地址"
@@ -4390,7 +4402,7 @@ msgid "Link to address information (external)"
msgstr "鏈接地址信息 (外部)"
#: company/models.py:508 company/models.py:799 company/serializers.py:480
-#: stock/api.py:567
+#: stock/api.py:581
msgid "Manufacturer Part"
msgstr "製造商零件"
@@ -4408,7 +4420,7 @@ msgid "Select manufacturer"
msgstr "選擇製造商"
#: company/models.py:543 company/serializers.py:491 order/serializers.py:783
-#: part/serializers.py:524
+#: part/serializers.py:535
msgid "MPN"
msgstr "製造商零件編號"
@@ -4437,10 +4449,10 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr "鏈接的製造商零件必須引用相同的基礎零件"
#: company/models.py:771 company/serializers.py:439 company/serializers.py:474
-#: order/models.py:716 part/serializers.py:498
+#: order/models.py:717 part/serializers.py:509
#: plugin/builtin/suppliers/digikey.py:26 plugin/builtin/suppliers/lcsc.py:27
#: plugin/builtin/suppliers/mouser.py:25 plugin/builtin/suppliers/tme.py:27
-#: stock/api.py:573 templates/email/overdue_purchase_order.html:16
+#: stock/api.py:587 templates/email/overdue_purchase_order.html:16
msgid "Supplier"
msgstr "供應商"
@@ -4448,7 +4460,7 @@ msgstr "供應商"
msgid "Select supplier"
msgstr "選擇供應商"
-#: company/models.py:778 part/serializers.py:509
+#: company/models.py:778 part/serializers.py:520
msgid "Supplier stock keeping unit"
msgstr "供應商庫存管理單位"
@@ -4485,7 +4497,7 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低費用(例如庫存費)"
#: company/models.py:840 order/serializers.py:928 stock/models.py:1108
-#: stock/serializers.py:1710
+#: stock/serializers.py:1721
msgid "Packaging"
msgstr "打包"
@@ -4533,7 +4545,7 @@ msgstr "此供應商使用的默認貨幣"
msgid "Company Name"
msgstr "公司名稱"
-#: company/serializers.py:396 part/serializers.py:885 stock/serializers.py:449
+#: company/serializers.py:396 part/serializers.py:896 stock/serializers.py:449
msgid "In Stock"
msgstr "有庫存"
@@ -4722,7 +4734,7 @@ msgstr "原始行數據"
msgid "Errors"
msgstr "錯誤"
-#: importer/models.py:667 part/serializers.py:1179
+#: importer/models.py:667 part/serializers.py:1190
msgid "Valid"
msgstr "有效"
@@ -4838,7 +4850,7 @@ msgstr "每個標籤要打印的份數"
msgid "Connected"
msgstr "已連接"
-#: machine/machine_types/label_printer.py:232 order/api.py:2425
+#: machine/machine_types/label_printer.py:232 order/api.py:2423
msgid "Unknown"
msgstr "未知"
@@ -4942,7 +4954,7 @@ msgstr "屬性鍵值"
msgid "Value of the property"
msgstr "屬性值"
-#: machine/serializers.py:30 users/models.py:236
+#: machine/serializers.py:30 users/models.py:234
msgid "Group"
msgstr "組"
@@ -4966,118 +4978,118 @@ msgstr "最大進度"
msgid "Maximum value for progress type, required if type=progress"
msgstr "進度類型的最大值,當 type=progress 時為必填"
-#: order/api.py:134
+#: order/api.py:132
msgid "Order Reference"
msgstr "訂單參考"
-#: order/api.py:162 order/api.py:1270 order/api.py:2062
+#: order/api.py:160 order/api.py:1268 order/api.py:2060
msgid "Outstanding"
msgstr "未完成"
-#: order/api.py:178
+#: order/api.py:176
msgid "Has Project Code"
msgstr "有項目編碼"
-#: order/api.py:192 order/models.py:533
+#: order/api.py:190 order/models.py:533
msgid "Created By"
msgstr "創建人"
-#: order/api.py:196
+#: order/api.py:194
msgid "Created Before"
msgstr "建立時間早於"
-#: order/api.py:200
+#: order/api.py:198
msgid "Created After"
msgstr "建立時間晚於"
-#: order/api.py:204
+#: order/api.py:202
msgid "Has Start Date"
msgstr "具有開始日期"
-#: order/api.py:212
+#: order/api.py:210
msgid "Start Date Before"
msgstr "開始日期早於"
-#: order/api.py:216
+#: order/api.py:214
msgid "Start Date After"
msgstr "開始日期晚於"
-#: order/api.py:220
+#: order/api.py:218
msgid "Has Target Date"
msgstr "具有目標日期"
-#: order/api.py:228
+#: order/api.py:226
msgid "Target Date Before"
msgstr "目標日期早於"
-#: order/api.py:232
+#: order/api.py:230
msgid "Target Date After"
msgstr "目標日期晚於"
-#: order/api.py:236
+#: order/api.py:234
msgid "Updated Before"
msgstr "更新之前"
-#: order/api.py:240
+#: order/api.py:238
msgid "Updated After"
msgstr "更新之後"
-#: order/api.py:293
+#: order/api.py:291
msgid "Has Pricing"
msgstr "有定價"
-#: order/api.py:346 order/api.py:833 order/api.py:1589 order/api.py:1880
+#: order/api.py:344 order/api.py:831 order/api.py:1587 order/api.py:1878
msgid "Completed Before"
msgstr "完成時間早於"
-#: order/api.py:350 order/api.py:837 order/api.py:1593 order/api.py:1884
+#: order/api.py:348 order/api.py:835 order/api.py:1591 order/api.py:1882
msgid "Completed After"
msgstr "完成時間晚於"
-#: order/api.py:356 order/api.py:360
+#: order/api.py:354 order/api.py:358
msgid "External Build Order"
msgstr "外部生產工單"
-#: order/api.py:545 order/api.py:933 order/api.py:1233 order/api.py:2025
-#: order/api.py:2184 order/models.py:2195 order/models.py:2321
-#: order/models.py:2373 order/models.py:2555 order/models.py:2751
-#: order/models.py:3280 order/models.py:3346 order/models.py:3754
+#: order/api.py:543 order/api.py:931 order/api.py:1231 order/api.py:2023
+#: order/api.py:2182 order/models.py:2197 order/models.py:2323
+#: order/models.py:2375 order/models.py:2557 order/models.py:2753
+#: order/models.py:3283 order/models.py:3349 order/models.py:3757
msgid "Order"
msgstr "訂單"
-#: order/api.py:549 order/api.py:1001 order/api.py:2252
+#: order/api.py:547 order/api.py:999 order/api.py:2250
msgid "Order Complete"
msgstr "訂單完成"
-#: order/api.py:581 order/api.py:585 order/serializers.py:794
+#: order/api.py:579 order/api.py:583 order/serializers.py:794
msgid "Internal Part"
msgstr "內部零件"
-#: order/api.py:603
+#: order/api.py:601
msgid "Order Pending"
msgstr "訂單待定"
-#: order/api.py:986 order/api.py:2237
+#: order/api.py:984 order/api.py:2235
msgid "Completed"
msgstr "已完成"
-#: order/api.py:1286
+#: order/api.py:1284
msgid "Has Shipment"
msgstr "已出貨"
-#: order/api.py:1504
+#: order/api.py:1502
msgid "Shipment not found"
msgstr "找不到發貨紀錄"
-#: order/api.py:2417 order/models.py:632 order/models.py:2196
-#: order/models.py:2322
+#: order/api.py:2415 order/models.py:632 order/models.py:2198
+#: order/models.py:2324
#: report/templates/report/inventree_purchase_order_report.html:14
#: stock/serializers.py:130 templates/email/overdue_purchase_order.html:15
msgid "Purchase Order"
msgstr "採購訂單"
-#: order/api.py:2419 order/models.py:1365 order/models.py:2374
-#: order/models.py:2556 order/models.py:2752
+#: order/api.py:2417 order/models.py:1366 order/models.py:2376
+#: order/models.py:2558 order/models.py:2754
#: report/templates/report/inventree_build_order_report.html:135
#: report/templates/report/inventree_sales_order_report.html:14
#: report/templates/report/inventree_sales_order_shipment_report.html:15
@@ -5085,14 +5097,14 @@ msgstr "採購訂單"
msgid "Sales Order"
msgstr "銷售訂單"
-#: order/api.py:2421 order/models.py:2923 order/models.py:3281
-#: order/models.py:3347
+#: order/api.py:2419 order/models.py:2925 order/models.py:3284
+#: order/models.py:3350
#: report/templates/report/inventree_return_order_report.html:13
#: templates/email/overdue_return_order.html:15
msgid "Return Order"
msgstr "退貨訂單"
-#: order/api.py:2423 order/models.py:3369 order/models.py:3755
+#: order/api.py:2421 order/models.py:3372 order/models.py:3758
#: report/templates/report/inventree_transfer_order_report.html:12
msgid "Transfer Order"
msgstr ""
@@ -5135,11 +5147,11 @@ msgstr "地址不符合選定的公司"
msgid "Order description (optional)"
msgstr "訂單描述 (可選)"
-#: order/models.py:497 order/models.py:2063
+#: order/models.py:497 order/models.py:2065
msgid "Select project code for this order"
msgstr "為此訂單選擇項目編碼"
-#: order/models.py:503 order/models.py:2044 order/models.py:2620
+#: order/models.py:503 order/models.py:2046 order/models.py:2622
msgid "Link to external page"
msgstr "鏈接到外部頁面"
@@ -5151,7 +5163,7 @@ msgstr "開始日期"
msgid "Scheduled start date for this order"
msgstr "此訂單的預定開始日期"
-#: order/models.py:517 order/models.py:2051 order/serializers.py:348
+#: order/models.py:517 order/models.py:2053 order/serializers.py:348
#: report/templates/report/inventree_build_order_report.html:125
msgid "Target Date"
msgstr "預計日期"
@@ -5184,487 +5196,487 @@ msgstr "此訂單的聯繫人"
msgid "Company address for this order"
msgstr "此訂單的公司地址"
-#: order/models.py:697 order/models.py:1428
+#: order/models.py:698 order/models.py:1430
msgid "Order reference"
msgstr "訂單參考"
-#: order/models.py:706 order/models.py:1452 order/models.py:3013
-#: order/models.py:3446 stock/serializers.py:1020 users/models.py:540
+#: order/models.py:707 order/models.py:1454 order/models.py:3016
+#: order/models.py:3449 stock/serializers.py:1020 users/models.py:538
msgid "Status"
msgstr "狀態"
-#: order/models.py:707
+#: order/models.py:708
msgid "Purchase order status"
msgstr "採購訂單狀態"
-#: order/models.py:717
+#: order/models.py:718
msgid "Company from which the items are being ordered"
msgstr "訂購物品的公司"
-#: order/models.py:728
+#: order/models.py:729
msgid "Supplier Reference"
msgstr "供應商參考"
-#: order/models.py:729
+#: order/models.py:730
msgid "Supplier order reference code"
msgstr "供應商訂單參考代碼"
-#: order/models.py:738
+#: order/models.py:739
msgid "received by"
msgstr "接收人"
-#: order/models.py:745 order/models.py:3028 order/models.py:3487
+#: order/models.py:746 order/models.py:3031 order/models.py:3490
msgid "Date order was completed"
msgstr "訂單完成日期"
-#: order/models.py:754 order/models.py:2254
+#: order/models.py:755 order/models.py:2256
msgid "Destination"
msgstr "目的地"
-#: order/models.py:755 order/models.py:2258
+#: order/models.py:756 order/models.py:2260
msgid "Destination for received items"
msgstr "收到項目的存放目的地"
-#: order/models.py:801
+#: order/models.py:802
msgid "Part supplier must match PO supplier"
msgstr "零件供應商必須與採購訂單供應商匹配"
-#: order/models.py:1071
+#: order/models.py:1072
msgid "Line item does not match purchase order"
msgstr "行項目與採購訂單不匹配"
-#: order/models.py:1074
+#: order/models.py:1075
msgid "Line item is missing a linked part"
msgstr "行項目缺少關聯零件"
-#: order/models.py:1088
+#: order/models.py:1089
msgid "Quantity must be a positive number"
msgstr "數量必須是正數"
-#: order/models.py:1122
+#: order/models.py:1123
msgid "Serial numbers cannot be assigned to virtual parts"
msgstr "序號無法分配給虛擬零件"
-#: order/models.py:1346
+#: order/models.py:1347
msgid "Allow any stock (serialized or unserialized)"
msgstr ""
-#: order/models.py:1347
+#: order/models.py:1348
msgid "Serialized stock only"
msgstr ""
-#: order/models.py:1348
+#: order/models.py:1349
msgid "Unserialized stock only"
msgstr ""
-#: order/models.py:1439 order/models.py:3000 stock/models.py:1130
-#: stock/models.py:1131 stock/serializers.py:1426
+#: order/models.py:1441 order/models.py:3003 stock/models.py:1130
+#: stock/models.py:1131 stock/serializers.py:1437
#: templates/email/overdue_return_order.html:16
#: templates/email/overdue_sales_order.html:16
msgid "Customer"
msgstr "客户"
-#: order/models.py:1440
+#: order/models.py:1442
msgid "Company to which the items are being sold"
msgstr "出售物品的公司"
-#: order/models.py:1453
+#: order/models.py:1455
msgid "Sales order status"
msgstr "銷售訂單狀態"
-#: order/models.py:1459 order/models.py:3020
+#: order/models.py:1461 order/models.py:3023
msgid "Customer Reference "
msgstr "客户參考 "
-#: order/models.py:1460 order/models.py:3021
+#: order/models.py:1462 order/models.py:3024
msgid "Customer order reference code"
msgstr "客户訂單參考代碼"
-#: order/models.py:1464 order/models.py:2572
+#: order/models.py:1466 order/models.py:2574
msgid "Shipment Date"
msgstr "發貨日期"
-#: order/models.py:1473
+#: order/models.py:1475
msgid "shipped by"
msgstr "發貨人"
-#: order/models.py:1648 order/models.py:3530
+#: order/models.py:1650 order/models.py:3533
msgid "Order is already complete"
msgstr "訂單已完成"
-#: order/models.py:1651 order/models.py:3533
+#: order/models.py:1653 order/models.py:3536
msgid "Order is already cancelled"
msgstr "訂單已取消"
-#: order/models.py:1655
+#: order/models.py:1657
msgid "Only an open order can be marked as complete"
msgstr "只有未結訂單才能標記為已完成"
-#: order/models.py:1659
+#: order/models.py:1661
msgid "Order cannot be completed as there are incomplete shipments"
msgstr "由於發貨不完整,訂單無法完成"
-#: order/models.py:1664
+#: order/models.py:1666
msgid "Order cannot be completed as there are incomplete allocations"
msgstr "訂單無法完成,因為仍有未完成的分配"
-#: order/models.py:1673
+#: order/models.py:1675
msgid "Order cannot be completed as there are incomplete line items"
msgstr "訂單無法完成,因為行項目不完整"
-#: order/models.py:1970 order/models.py:1995
+#: order/models.py:1972 order/models.py:1997
msgid "The order is locked and cannot be modified"
msgstr "此訂單已鎖定,無法修改"
-#: order/models.py:2003
+#: order/models.py:2005
msgid "Item quantity"
msgstr "項目數量"
-#: order/models.py:2021
+#: order/models.py:2023
msgid "Line Number"
msgstr "行號"
-#: order/models.py:2022
+#: order/models.py:2024
msgid "Line number for this item (optional)"
msgstr "此項目的行號 (選填)"
-#: order/models.py:2031
+#: order/models.py:2033
msgid "Line item reference"
msgstr "行項目參考"
-#: order/models.py:2038
+#: order/models.py:2040
msgid "Line item notes"
msgstr "行項目註釋"
-#: order/models.py:2053
+#: order/models.py:2055
msgid "Target date for this line item (leave blank to use the target date from the order)"
msgstr "此行項目的目標日期 (留空以使用訂單中的目標日期)"
-#: order/models.py:2083
+#: order/models.py:2085
msgid "Line item description (optional)"
msgstr "行項目描述 (可選)"
-#: order/models.py:2090
+#: order/models.py:2092
msgid "Additional context for this line"
msgstr "此行的附加上下文"
-#: order/models.py:2100
+#: order/models.py:2102
msgid "Unit price"
msgstr "單位價格"
-#: order/models.py:2119
+#: order/models.py:2121
msgid "Purchase Order Line Item"
msgstr "採購訂單行項目"
-#: order/models.py:2148
+#: order/models.py:2150
msgid "Supplier part must match supplier"
msgstr "供應商零件必須與供應商匹配"
-#: order/models.py:2156
+#: order/models.py:2158
msgid "Build order must be marked as external"
msgstr "生產工單必須標記為外部"
-#: order/models.py:2163
+#: order/models.py:2165
msgid "Build orders can only be linked to assembly parts"
msgstr "生產工單只能連結到組裝零件"
-#: order/models.py:2169
+#: order/models.py:2171
msgid "Build order part must match line item part"
msgstr "生產工單的零件必須與行項目的零件一致"
-#: order/models.py:2179
+#: order/models.py:2181
msgid "An external build order is required for assembly parts"
msgstr ""
-#: order/models.py:2215
+#: order/models.py:2217
msgid "Supplier part"
msgstr "供應商零件"
-#: order/models.py:2222
+#: order/models.py:2224
msgid "Received"
msgstr "已接收"
-#: order/models.py:2223
+#: order/models.py:2225
msgid "Number of items received"
msgstr "收到的物品數量"
-#: order/models.py:2231 stock/models.py:1260 stock/serializers.py:669
+#: order/models.py:2233 stock/models.py:1260 stock/serializers.py:669
msgid "Purchase Price"
msgstr "採購價格"
-#: order/models.py:2232
+#: order/models.py:2234
msgid "Unit purchase price"
msgstr "每單位的採購價格"
-#: order/models.py:2248
+#: order/models.py:2250
msgid "External Build Order to be fulfilled by this line item"
msgstr "由此行項目履行的外部生產工單"
-#: order/models.py:2310
+#: order/models.py:2312
msgid "Purchase Order Extra Line"
msgstr "採購訂單附加行"
-#: order/models.py:2339
+#: order/models.py:2341
msgid "Sales Order Line Item"
msgstr "銷售訂單行項目"
-#: order/models.py:2366
+#: order/models.py:2368
msgid "Only salable parts can be assigned to a sales order"
msgstr "只有可銷售的零件才能分配給銷售訂單"
-#: order/models.py:2392
+#: order/models.py:2394
msgid "Sale Price"
msgstr "售出價格"
-#: order/models.py:2393
+#: order/models.py:2395
msgid "Unit sale price"
msgstr "單位售出價格"
-#: order/models.py:2402 order/status_codes.py:50
+#: order/models.py:2404 order/status_codes.py:50
msgid "Shipped"
msgstr "已配送"
-#: order/models.py:2403
+#: order/models.py:2405
msgid "Shipped quantity"
msgstr "發貨數量"
-#: order/models.py:2516
+#: order/models.py:2518
msgid "Sales Order Shipment"
msgstr "銷售訂單發貨"
-#: order/models.py:2529
+#: order/models.py:2531
msgid "Shipment address must match the customer"
msgstr "配送地址必須跟客戶相符"
-#: order/models.py:2565
+#: order/models.py:2567
msgid "Shipping address for this shipment"
msgstr "配送的採購地址"
-#: order/models.py:2573
+#: order/models.py:2575
msgid "Date of shipment"
msgstr "發貨日期"
-#: order/models.py:2579
+#: order/models.py:2581
msgid "Delivery Date"
msgstr "送達日期"
-#: order/models.py:2580
+#: order/models.py:2582
msgid "Date of delivery of shipment"
msgstr "裝運交貨日期"
-#: order/models.py:2588
+#: order/models.py:2590
msgid "Checked By"
msgstr "審核人"
-#: order/models.py:2589
+#: order/models.py:2591
msgid "User who checked this shipment"
msgstr "檢查此裝運的用户"
-#: order/models.py:2596 order/models.py:2848 order/serializers.py:1856
+#: order/models.py:2598 order/models.py:2850 order/serializers.py:1856
#: order/serializers.py:1990 order/serializers.py:2081
#: report/templates/report/inventree_sales_order_shipment_report.html:14
msgid "Shipment"
msgstr "配送"
-#: order/models.py:2597
+#: order/models.py:2599
msgid "Shipment number"
msgstr "配送單號"
-#: order/models.py:2605
+#: order/models.py:2607
msgid "Tracking Number"
msgstr "跟蹤單號"
-#: order/models.py:2606
+#: order/models.py:2608
msgid "Shipment tracking information"
msgstr "配送跟蹤信息"
-#: order/models.py:2613
+#: order/models.py:2615
msgid "Invoice Number"
msgstr "發票編號"
-#: order/models.py:2614
+#: order/models.py:2616
msgid "Reference number for associated invoice"
msgstr "相關發票的參考號"
-#: order/models.py:2660
+#: order/models.py:2662
msgid "Shipment has already been sent"
msgstr "貨物已發出"
-#: order/models.py:2663
+#: order/models.py:2665
msgid "Shipment has no allocated stock items"
msgstr "發貨沒有分配庫存項目"
-#: order/models.py:2670
+#: order/models.py:2672
msgid "Shipment must be checked before it can be completed"
msgstr "發貨紀錄必須在完成前進行檢查"
-#: order/models.py:2740
+#: order/models.py:2742
msgid "Sales Order Extra Line"
msgstr "銷售訂單加行"
-#: order/models.py:2769
+#: order/models.py:2771
msgid "Sales Order Allocation"
msgstr "銷售訂單分配"
-#: order/models.py:2792 order/models.py:2794 order/models.py:3847
-#: order/models.py:3849
+#: order/models.py:2794 order/models.py:2796 order/models.py:3850
+#: order/models.py:3852
msgid "Stock item has not been assigned"
msgstr "庫存項目尚未分配"
-#: order/models.py:2801 order/models.py:3856
+#: order/models.py:2803 order/models.py:3859
msgid "Cannot allocate stock item to a line with a different part"
msgstr "無法將庫存項目分配給具有不同零件的行"
-#: order/models.py:2804 order/models.py:3859
+#: order/models.py:2806 order/models.py:3862
msgid "Cannot allocate stock to a line without a part"
msgstr "無法將庫存分配給沒有零件的生產線"
-#: order/models.py:2807 order/models.py:3862
+#: order/models.py:2809 order/models.py:3865
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "分配數量不能超過庫存數量"
-#: order/models.py:2823 order/models.py:3878
+#: order/models.py:2825 order/models.py:3881
msgid "Allocation quantity must be greater than zero"
msgstr "分配的數量必須大於零"
-#: order/models.py:2826 order/models.py:3881 order/serializers.py:1726
+#: order/models.py:2828 order/models.py:3884 order/serializers.py:1726
#: order/serializers.py:2812
msgid "Quantity must be 1 for serialized stock item"
msgstr "序列化庫存項目的數量必須為1"
-#: order/models.py:2829
+#: order/models.py:2831
msgid "Sales order does not match shipment"
msgstr "銷售訂單與發貨不匹配"
-#: order/models.py:2830 plugin/base/barcodes/api.py:709
+#: order/models.py:2832 plugin/base/barcodes/api.py:713
msgid "Shipment does not match sales order"
msgstr "發貨與銷售訂單不匹配"
-#: order/models.py:2838 order/models.py:3889
+#: order/models.py:2840 order/models.py:3892
msgid "Line"
msgstr "行"
-#: order/models.py:2849
+#: order/models.py:2851
msgid "Sales order shipment reference"
msgstr "銷售訂單發貨參考"
-#: order/models.py:2862 order/models.py:3288 order/models.py:3902
+#: order/models.py:2864 order/models.py:3291 order/models.py:3905
msgid "Item"
msgstr "項目"
-#: order/models.py:2863 order/models.py:3903
+#: order/models.py:2865 order/models.py:3906
msgid "Select stock item to allocate"
msgstr "選擇要分配的庫存項目"
-#: order/models.py:2872 order/models.py:3912
+#: order/models.py:2874 order/models.py:3915
msgid "Enter stock allocation quantity"
msgstr "輸入庫存分配數量"
-#: order/models.py:2989
+#: order/models.py:2992
msgid "Return Order reference"
msgstr "退貨訂單參考"
-#: order/models.py:3001
+#: order/models.py:3004
msgid "Company from which items are being returned"
msgstr "退回物品的公司"
-#: order/models.py:3014
+#: order/models.py:3017
msgid "Return order status"
msgstr "退貨訂單狀態"
-#: order/models.py:3246
+#: order/models.py:3249
msgid "Return Order Line Item"
msgstr "退貨訂單行項目"
-#: order/models.py:3259
+#: order/models.py:3262
msgid "Stock item must be specified"
msgstr "必須指定庫存項目"
-#: order/models.py:3263
+#: order/models.py:3266
msgid "Return quantity exceeds stock quantity"
msgstr "退回數量超過庫存數量"
-#: order/models.py:3268
+#: order/models.py:3271
msgid "Return quantity must be greater than zero"
msgstr "退回數量必須大於零"
-#: order/models.py:3273
+#: order/models.py:3276
msgid "Invalid quantity for serialized stock item"
msgstr "序列化庫存項目的數量無效"
-#: order/models.py:3289
+#: order/models.py:3292
msgid "Select item to return from customer"
msgstr "選擇要從客户處退回的商品"
-#: order/models.py:3304
+#: order/models.py:3307
msgid "Received Date"
msgstr "接收日期"
-#: order/models.py:3305
+#: order/models.py:3308
msgid "The date this return item was received"
msgstr "收到此退貨項目的日期"
-#: order/models.py:3317
+#: order/models.py:3320
msgid "Outcome"
msgstr "結果"
-#: order/models.py:3318
+#: order/models.py:3321
msgid "Outcome for this line item"
msgstr "該行項目的結果"
-#: order/models.py:3325
+#: order/models.py:3328
msgid "Cost associated with return or repair for this line item"
msgstr "與此行項目的退貨或維修相關的成本"
-#: order/models.py:3335
+#: order/models.py:3338
msgid "Return Order Extra Line"
msgstr "退貨訂單附加行"
-#: order/models.py:3436
+#: order/models.py:3439
msgid "Transfer Order Reference"
msgstr ""
-#: order/models.py:3447
+#: order/models.py:3450
msgid "Transfer order status"
msgstr ""
-#: order/models.py:3462
+#: order/models.py:3465
msgid "Source for transferred items"
msgstr ""
-#: order/models.py:3472
+#: order/models.py:3475
msgid "Destination for transferred items"
msgstr ""
-#: order/models.py:3477
+#: order/models.py:3480
msgid "Consume Stock"
msgstr ""
-#: order/models.py:3479
+#: order/models.py:3482
msgid "Rather than transfer the stock to the destination, \"consume\" it, by removing transferred quantity from the allocated stock item"
msgstr ""
-#: order/models.py:3537
+#: order/models.py:3540
msgid "Order cannot be completed until a destination location is set"
msgstr ""
-#: order/models.py:3542
+#: order/models.py:3545
msgid "Order cannot be completed until it is fully allocated"
msgstr ""
-#: order/models.py:3736
+#: order/models.py:3739
msgid "Transfer Order Line Item"
msgstr ""
-#: order/models.py:3769
+#: order/models.py:3772
msgid "transferred"
msgstr ""
-#: order/models.py:3770
+#: order/models.py:3773
msgid "transferred quantity"
msgstr ""
-#: order/models.py:3824
+#: order/models.py:3827
msgid "Transfer Order Allocation"
msgstr ""
@@ -5692,7 +5704,7 @@ msgstr "複製額外行"
msgid "Copy extra line items from the original order"
msgstr "從原始訂單複製額外的行項目"
-#: order/serializers.py:99 part/serializers.py:439
+#: order/serializers.py:99 part/serializers.py:450
msgid "Copy Parameters"
msgstr "複製參數"
@@ -5784,11 +5796,11 @@ msgstr "合併項目"
msgid "Merge items with the same part, destination and target date into one line item"
msgstr "將具有相同零件、目的地和目標日期的項目合併到一個行項目中"
-#: order/serializers.py:776 part/serializers.py:508
+#: order/serializers.py:776 part/serializers.py:519
msgid "SKU"
msgstr "庫存量單位"
-#: order/serializers.py:790 part/models.py:1156 part/serializers.py:367
+#: order/serializers.py:790 part/models.py:1156 part/serializers.py:378
msgid "Internal Part Number"
msgstr "內部零件編號"
@@ -5825,7 +5837,7 @@ msgid "Enter batch code for incoming stock items"
msgstr "輸入入庫項目的批號"
#: order/serializers.py:910 stock/models.py:1212
-#: templates/email/stale_stock_notification.html:22 users/models.py:137
+#: templates/email/stale_stock_notification.html:22 users/models.py:135
msgid "Expiry Date"
msgstr "有效期至"
@@ -6056,123 +6068,131 @@ msgstr "逾期退貨訂單"
msgid "Return order {ro} is now overdue"
msgstr "退貨訂單 {ro} 已逾期"
-#: part/api.py:89
+#: part/api.py:90
msgid "Starred"
msgstr "已加星標"
-#: part/api.py:91
+#: part/api.py:92
msgid "Filter by starred categories"
msgstr "按星標類別篩選"
-#: part/api.py:108 stock/api.py:288
+#: part/api.py:109 stock/api.py:289
msgid "Depth"
msgstr "深度"
-#: part/api.py:108
+#: part/api.py:109
msgid "Filter by category depth"
msgstr "按類別深度篩選"
-#: part/api.py:126 stock/api.py:306
+#: part/api.py:127 stock/api.py:307
msgid "Top Level"
msgstr "頂級"
-#: part/api.py:128
+#: part/api.py:129
msgid "Filter by top-level categories"
msgstr "按頂級類別篩選"
-#: part/api.py:141 stock/api.py:321
+#: part/api.py:142 stock/api.py:322
msgid "Cascade"
msgstr "級聯"
-#: part/api.py:143
+#: part/api.py:144
msgid "Include sub-categories in filtered results"
msgstr "在篩選結果中包含子類別"
-#: part/api.py:163
+#: part/api.py:164
msgid "Parent"
msgstr "父類"
-#: part/api.py:165
+#: part/api.py:166
msgid "Filter by parent category"
msgstr "按父類別篩選"
-#: part/api.py:200
+#: part/api.py:201
msgid "Exclude sub-categories under the specified category"
msgstr "排除指定類別下的子類別"
-#: part/api.py:428
+#: part/api.py:298 stock/api.py:469
+msgid "Max Level"
+msgstr ""
+
+#: part/api.py:300 stock/api.py:471
+msgid "Limit the depth of the category tree"
+msgstr ""
+
+#: part/api.py:442
msgid "Has Results"
msgstr "有結果"
-#: part/api.py:658
+#: part/api.py:672
msgid "Is Variant"
msgstr "為變體"
-#: part/api.py:666
+#: part/api.py:680
msgid "Is Revision"
msgstr "是修訂版本"
-#: part/api.py:676
+#: part/api.py:690
msgid "Has Revisions"
msgstr "有修訂版本"
-#: part/api.py:874
+#: part/api.py:888
msgid "BOM Valid"
msgstr "物料清單合規"
-#: part/api.py:981
+#: part/api.py:995
msgid "Cascade Categories"
msgstr "級聯類別"
-#: part/api.py:982
+#: part/api.py:996
msgid "If true, include items in child categories of the given category"
msgstr "若為 true,則包含給定類別的子類別中的項目"
-#: part/api.py:988
+#: part/api.py:1002
msgid "Filter by numeric category ID or the literal 'null'"
msgstr "依數字類別 ID 或常值 'null' 篩選"
-#: part/api.py:1301
+#: part/api.py:1315
msgid "Assembly part is active"
msgstr "組件零件處於作用中狀態"
-#: part/api.py:1305
+#: part/api.py:1319
msgid "Assembly part is trackable"
msgstr "組件零件可追蹤"
-#: part/api.py:1309
+#: part/api.py:1323
msgid "Assembly part is testable"
msgstr "裝配部份是可測試的"
-#: part/api.py:1313
+#: part/api.py:1327
msgid "Assembly part is locked"
msgstr ""
-#: part/api.py:1318
+#: part/api.py:1332
msgid "Component part is active"
msgstr "子零件處於作用中狀態"
-#: part/api.py:1322
+#: part/api.py:1336
msgid "Component part is trackable"
msgstr "子零件可追蹤"
-#: part/api.py:1326
+#: part/api.py:1340
msgid "Component part is testable"
msgstr "組件部份是可測試的"
-#: part/api.py:1330
+#: part/api.py:1344
msgid "Component part is an assembly"
msgstr "子零件是一個組件"
-#: part/api.py:1334
+#: part/api.py:1348
msgid "Component part is virtual"
msgstr "子零件是虛擬的"
-#: part/api.py:1338
+#: part/api.py:1352
msgid "Has available stock"
msgstr "有可用庫存"
-#: part/api.py:1395
+#: part/api.py:1409
msgid "Uses"
msgstr "使用"
@@ -6213,7 +6233,7 @@ msgstr "此類別零件的默認關鍵字"
msgid "Icon"
msgstr "圖標"
-#: part/models.py:137 part/serializers.py:175 part/serializers.py:196
+#: part/models.py:137 part/serializers.py:175 part/serializers.py:207
#: stock/models.py:187
msgid "Icon (optional)"
msgstr "圖標(可選)"
@@ -6349,7 +6369,7 @@ msgstr "提高搜索結果可見性的零件關鍵字"
msgid "Part category"
msgstr "零件類別"
-#: part/models.py:1155 part/serializers.py:859
+#: part/models.py:1155 part/serializers.py:870
#: report/templates/report/inventree_stock_location_report.html:103
msgid "IPN"
msgstr "內部零件號 IPN"
@@ -6358,7 +6378,7 @@ msgstr "內部零件號 IPN"
msgid "Part revision or version number"
msgstr "零件修訂版本或版本號"
-#: part/models.py:1164 report/models.py:233
+#: part/models.py:1164 report/models.py:234
msgid "Revision"
msgstr "版本"
@@ -6382,7 +6402,7 @@ msgstr "默認到期"
msgid "Expiry time (in days) for stock items of this part"
msgstr "此零件庫存項的過期時間 (天)"
-#: part/models.py:1236 part/serializers.py:929
+#: part/models.py:1236 part/serializers.py:940
msgid "Minimum Stock"
msgstr "最低庫存"
@@ -6390,7 +6410,7 @@ msgstr "最低庫存"
msgid "Minimum allowed stock level"
msgstr "允許的最小庫存量"
-#: part/models.py:1245 part/serializers.py:933
+#: part/models.py:1245 part/serializers.py:944
msgid "Maximum Stock"
msgstr ""
@@ -6631,7 +6651,7 @@ msgid "Total available stock at time of stocktake"
msgstr "盤點時可用庫存總額"
#: part/models.py:3548 report/templates/report/inventree_test_report.html:106
-#: stock/models.py:3214
+#: stock/models.py:3273
msgid "Date"
msgstr "日期"
@@ -6759,7 +6779,7 @@ msgstr "子零件"
msgid "Select part to be used in BOM"
msgstr "選擇要用於物料清單的零件"
-#: part/models.py:4111 part/serializers.py:1719
+#: part/models.py:4111 part/serializers.py:1730
msgid "Amount"
msgstr ""
@@ -6911,351 +6931,351 @@ msgstr "上級類別"
msgid "Parent part category"
msgstr "上級零件類別"
-#: part/serializers.py:139 part/serializers.py:193
+#: part/serializers.py:139 part/serializers.py:204
msgid "Subcategories"
msgstr "子類別"
-#: part/serializers.py:232
+#: part/serializers.py:243
msgid "Results"
msgstr "結果"
-#: part/serializers.py:233
+#: part/serializers.py:244
msgid "Number of results recorded against this template"
msgstr "根據該模板記錄的結果數量"
-#: part/serializers.py:264 part/serializers.py:282 stock/serializers.py:675
+#: part/serializers.py:275 part/serializers.py:293 stock/serializers.py:675
msgid "Purchase currency of this stock item"
msgstr "購買此庫存項的貨幣"
-#: part/serializers.py:309
+#: part/serializers.py:320
msgid "File is not an image"
msgstr "檔案不是圖片"
-#: part/serializers.py:419
+#: part/serializers.py:430
msgid "Original Part"
msgstr "原始零件"
-#: part/serializers.py:420
+#: part/serializers.py:431
msgid "Select original part to duplicate"
msgstr "選擇要複製的原始零件"
-#: part/serializers.py:425
+#: part/serializers.py:436
msgid "Copy Image"
msgstr "複製圖片"
-#: part/serializers.py:426
+#: part/serializers.py:437
msgid "Copy image from original part"
msgstr "從原零件複製圖片"
-#: part/serializers.py:432
+#: part/serializers.py:443
msgid "Copy BOM"
msgstr "複製物料清單"
-#: part/serializers.py:433
+#: part/serializers.py:444
msgid "Copy bill of materials from original part"
msgstr "從原始零件複製材料清單"
-#: part/serializers.py:440
+#: part/serializers.py:451
msgid "Copy parameter data from original part"
msgstr "從原始零件複製參數數據"
-#: part/serializers.py:446
+#: part/serializers.py:457
msgid "Copy Notes"
msgstr "複製備註"
-#: part/serializers.py:447
+#: part/serializers.py:458
msgid "Copy notes from original part"
msgstr "從原始零件複製備註"
-#: part/serializers.py:453
+#: part/serializers.py:464
msgid "Copy Tests"
msgstr "複製測試模板"
-#: part/serializers.py:454
+#: part/serializers.py:465
msgid "Copy test templates from original part"
msgstr "從原始零件複製測試模板"
-#: part/serializers.py:472
+#: part/serializers.py:483
msgid "Initial Stock Quantity"
msgstr "初始化庫存數量"
-#: part/serializers.py:474
+#: part/serializers.py:485
msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added."
msgstr "指定此零件的初始庫存數量。如果數量為零,則不添加任何庫存。"
-#: part/serializers.py:481
+#: part/serializers.py:492
msgid "Initial Stock Location"
msgstr "初始化庫存地點"
-#: part/serializers.py:482
+#: part/serializers.py:493
msgid "Specify initial stock location for this Part"
msgstr "初始化指定此零件的庫存地點"
-#: part/serializers.py:499
+#: part/serializers.py:510
msgid "Select supplier (or leave blank to skip)"
msgstr "選擇供應商(或為空以跳過)"
-#: part/serializers.py:515
+#: part/serializers.py:526
msgid "Select manufacturer (or leave blank to skip)"
msgstr "選擇製造商(或為空)"
-#: part/serializers.py:525
+#: part/serializers.py:536
msgid "Manufacturer part number"
msgstr "製造商零件號"
-#: part/serializers.py:532
+#: part/serializers.py:543
msgid "Selected company is not a valid supplier"
msgstr "所選公司不是一個有效的供應商"
-#: part/serializers.py:541
+#: part/serializers.py:552
msgid "Selected company is not a valid manufacturer"
msgstr "所選公司不是一個有效的製造商"
-#: part/serializers.py:552
+#: part/serializers.py:563
msgid "Manufacturer part matching this MPN already exists"
msgstr "與此製造商零件編號 (MPN) 的相匹配的製造商零件已存在"
-#: part/serializers.py:559
+#: part/serializers.py:570
msgid "Supplier part matching this SKU already exists"
msgstr "匹配此庫存單位 (SKU) 的供應商零件已存在"
-#: part/serializers.py:844
+#: part/serializers.py:855
msgid "Category Name"
msgstr "類別名稱"
-#: part/serializers.py:873
+#: part/serializers.py:884
msgid "Building"
msgstr "正在生產"
-#: part/serializers.py:874
+#: part/serializers.py:885
msgid "Quantity of this part currently being in production"
msgstr "此零件目前生產中數量"
-#: part/serializers.py:881
+#: part/serializers.py:892
msgid "Outstanding quantity of this part scheduled to be built"
msgstr "此零件排程待製造未完成數量"
-#: part/serializers.py:901 stock/serializers.py:1051 stock/serializers.py:1256
+#: part/serializers.py:912 stock/serializers.py:1051 stock/serializers.py:1267
#: users/ruleset.py:33
msgid "Stock Items"
msgstr "庫存項"
-#: part/serializers.py:905
+#: part/serializers.py:916
msgid "Revisions"
msgstr "修訂"
-#: part/serializers.py:909 part/serializers.py:1208
+#: part/serializers.py:920 part/serializers.py:1219
#: templates/email/low_stock_notification.html:16
#: templates/email/part_event_notification.html:17
msgid "Total Stock"
msgstr "庫存總量"
-#: part/serializers.py:917
+#: part/serializers.py:928
msgid "Unallocated Stock"
msgstr "未分配的庫存"
-#: part/serializers.py:925
+#: part/serializers.py:936
msgid "Variant Stock"
msgstr "變體庫存"
-#: part/serializers.py:1000
+#: part/serializers.py:1011
msgid "Duplicate Part"
msgstr "重複零件"
-#: part/serializers.py:1001
+#: part/serializers.py:1012
msgid "Copy initial data from another Part"
msgstr "從另一個零件複製初始數據"
-#: part/serializers.py:1007
+#: part/serializers.py:1018
msgid "Initial Stock"
msgstr "初始庫存"
-#: part/serializers.py:1008
+#: part/serializers.py:1019
msgid "Create Part with initial stock quantity"
msgstr "創建具有初始庫存數量的零件"
-#: part/serializers.py:1014
+#: part/serializers.py:1025
msgid "Supplier Information"
msgstr "供應商信息"
-#: part/serializers.py:1015
+#: part/serializers.py:1026
msgid "Add initial supplier information for this part"
msgstr "添加此零件的初始供應商信息"
-#: part/serializers.py:1024
+#: part/serializers.py:1035
msgid "Copy Category Parameters"
msgstr "複製類別參數"
-#: part/serializers.py:1025
+#: part/serializers.py:1036
msgid "Copy parameter templates from selected part category"
msgstr "從選擇的零件複製參數模版"
-#: part/serializers.py:1030
+#: part/serializers.py:1041
msgid "Existing Image"
msgstr "現有的圖片"
-#: part/serializers.py:1031
+#: part/serializers.py:1042
msgid "Filename of an existing part image"
msgstr "現有零件圖片的文件名"
-#: part/serializers.py:1048
+#: part/serializers.py:1059
msgid "Image file does not exist"
msgstr "圖片不存在"
-#: part/serializers.py:1180
+#: part/serializers.py:1191
msgid "Validate entire Bill of Materials"
msgstr "驗證整個物料清單"
-#: part/serializers.py:1214 part/serializers.py:1810
+#: part/serializers.py:1225 part/serializers.py:1821
msgid "Can Build"
msgstr "可以創建"
-#: part/serializers.py:1231
+#: part/serializers.py:1242
msgid "Required for Build Orders"
msgstr "生產工單需求數"
-#: part/serializers.py:1236
+#: part/serializers.py:1247
msgid "Allocated to Build Orders"
msgstr "已分配至生產工單"
-#: part/serializers.py:1243
+#: part/serializers.py:1254
msgid "Required for Sales Orders"
msgstr "銷售訂單需求數"
-#: part/serializers.py:1247
+#: part/serializers.py:1258
msgid "Allocated to Sales Orders"
msgstr "已分配至銷售訂單"
-#: part/serializers.py:1307
+#: part/serializers.py:1318
msgid "Part IPN"
msgstr "零件 IPN"
-#: part/serializers.py:1314
+#: part/serializers.py:1325
msgid "Part Description"
msgstr "零件描述"
-#: part/serializers.py:1358
+#: part/serializers.py:1369
msgid "Select a part to generate stocktake information for that part (and any variant parts)"
msgstr "選擇一個零件以產生該零件 (及其任何變體零件) 的盤點資訊"
-#: part/serializers.py:1368
+#: part/serializers.py:1379
msgid "Select a category to include all parts within that category (and subcategories)"
msgstr "選擇一個類別以包含該類別 (及其子類別) 內的所有零件"
-#: part/serializers.py:1378
+#: part/serializers.py:1389
msgid "Select a location to include all parts with stock in that location (including sub-locations)"
msgstr "選擇一個位置以包含該位置 (及其子位置) 內所有有庫存的零件"
-#: part/serializers.py:1385
+#: part/serializers.py:1396
msgid "Generate Stocktake Entries"
msgstr "產生盤點項目"
-#: part/serializers.py:1386
+#: part/serializers.py:1397
msgid "Save stocktake entries for the selected parts"
msgstr "儲存選定零件的盤點項目"
-#: part/serializers.py:1393
+#: part/serializers.py:1404
msgid "Generate Report"
msgstr "產製報表"
-#: part/serializers.py:1394
+#: part/serializers.py:1405
msgid "Generate a stocktake report for the selected parts"
msgstr "產製選定零件的庫存報表"
-#: part/serializers.py:1497
+#: part/serializers.py:1508
msgid "Minimum Price"
msgstr "最低價格"
-#: part/serializers.py:1498
+#: part/serializers.py:1509
msgid "Override calculated value for minimum price"
msgstr "覆蓋已計算的最低價格值"
-#: part/serializers.py:1505
+#: part/serializers.py:1516
msgid "Minimum price currency"
msgstr "最低價格貨幣"
-#: part/serializers.py:1512
+#: part/serializers.py:1523
msgid "Maximum Price"
msgstr "最高價格"
-#: part/serializers.py:1513
+#: part/serializers.py:1524
msgid "Override calculated value for maximum price"
msgstr "覆蓋已計算的最高價格值"
-#: part/serializers.py:1520
+#: part/serializers.py:1531
msgid "Maximum price currency"
msgstr "最高價格貨幣"
-#: part/serializers.py:1549
+#: part/serializers.py:1560
msgid "Update"
msgstr "更新"
-#: part/serializers.py:1550
+#: part/serializers.py:1561
msgid "Update pricing for this part"
msgstr "更新這個零件的價格"
-#: part/serializers.py:1573
+#: part/serializers.py:1584
#, python-brace-format
msgid "Could not convert from provided currencies to {default_currency}"
msgstr "無法將所提供的貨幣轉換為 {default_currency}"
-#: part/serializers.py:1580
+#: part/serializers.py:1591
msgid "Minimum price must not be greater than maximum price"
msgstr "最低價格不能高於最高價格。"
-#: part/serializers.py:1583
+#: part/serializers.py:1594
msgid "Maximum price must not be less than minimum price"
msgstr "最高價格不能低於最低價格"
-#: part/serializers.py:1720
+#: part/serializers.py:1731
msgid "Amount required for this item (can include units)"
msgstr ""
-#: part/serializers.py:1737
+#: part/serializers.py:1748
msgid "Select the parent assembly"
msgstr "選擇父裝配"
-#: part/serializers.py:1772
+#: part/serializers.py:1783
msgid "Select the component part"
msgstr "選擇零部件"
-#: part/serializers.py:1892
+#: part/serializers.py:1903
msgid "Invalid quantity format"
msgstr ""
-#: part/serializers.py:2021
+#: part/serializers.py:2032
msgid "Select part to copy BOM from"
msgstr "選擇要複製物料清單的零件"
-#: part/serializers.py:2029
+#: part/serializers.py:2040
msgid "Remove Existing Data"
msgstr "移除現有數據"
-#: part/serializers.py:2030
+#: part/serializers.py:2041
msgid "Remove existing BOM items before copying"
msgstr "複製前刪除現有的物料清單項目"
-#: part/serializers.py:2035
+#: part/serializers.py:2046
msgid "Include Inherited"
msgstr "包含繼承的"
-#: part/serializers.py:2036
+#: part/serializers.py:2047
msgid "Include BOM items which are inherited from templated parts"
msgstr "包含從模板零件繼承的物料清單項目"
-#: part/serializers.py:2041
+#: part/serializers.py:2052
msgid "Skip Invalid Rows"
msgstr "跳過無效行"
-#: part/serializers.py:2042
+#: part/serializers.py:2053
msgid "Enable this option to skip invalid rows"
msgstr "啓用此選項以跳過無效行"
-#: part/serializers.py:2047
+#: part/serializers.py:2058
msgid "Copy Substitute Parts"
msgstr "複製替代品零件"
-#: part/serializers.py:2048
+#: part/serializers.py:2059
msgid "Copy substitute parts when duplicate BOM items"
msgstr "複製物料清單項目時複製替代品零件"
@@ -7326,91 +7346,91 @@ msgstr "未指定操作"
msgid "No matching action found"
msgstr "未找到指定操作"
-#: plugin/base/barcodes/api.py:212
+#: plugin/base/barcodes/api.py:214
msgid "No match found for barcode data"
msgstr "未找到匹配條形碼數據"
-#: plugin/base/barcodes/api.py:216
+#: plugin/base/barcodes/api.py:218
msgid "Match found for barcode data"
msgstr "找到匹配條形碼數據"
-#: plugin/base/barcodes/api.py:254 plugin/base/barcodes/serializers.py:77
+#: plugin/base/barcodes/api.py:256 plugin/base/barcodes/serializers.py:77
msgid "Model is not supported"
msgstr "不支持模型"
-#: plugin/base/barcodes/api.py:259
+#: plugin/base/barcodes/api.py:261
msgid "Model instance not found"
msgstr "找不到模型實例"
-#: plugin/base/barcodes/api.py:288
+#: plugin/base/barcodes/api.py:290
msgid "Barcode matches existing item"
msgstr "條形碼匹配現有項目"
-#: plugin/base/barcodes/api.py:419
+#: plugin/base/barcodes/api.py:421
msgid "No matching part data found"
msgstr "沒有找到匹配的零件數據"
-#: plugin/base/barcodes/api.py:435
+#: plugin/base/barcodes/api.py:437
msgid "No matching supplier parts found"
msgstr "沒有找到匹配的供應商零件"
-#: plugin/base/barcodes/api.py:438
+#: plugin/base/barcodes/api.py:440
msgid "Multiple matching supplier parts found"
msgstr "找到多個匹配的供應商零件"
-#: plugin/base/barcodes/api.py:451 plugin/base/barcodes/api.py:744
+#: plugin/base/barcodes/api.py:453 plugin/base/barcodes/api.py:748
msgid "No matching plugin found for barcode data"
msgstr "沒有找到匹配條碼數據的插件"
-#: plugin/base/barcodes/api.py:461
+#: plugin/base/barcodes/api.py:463
msgid "Matched supplier part"
msgstr "匹配的供應商零件"
-#: plugin/base/barcodes/api.py:529
+#: plugin/base/barcodes/api.py:533
msgid "Item has already been received"
msgstr "項目已被接收"
-#: plugin/base/barcodes/api.py:597
+#: plugin/base/barcodes/api.py:601
msgid "Purchase order Found\\rNo supplier Part Match"
msgstr ""
-#: plugin/base/barcodes/api.py:603
+#: plugin/base/barcodes/api.py:607
msgid "Supplier Part Found\\rNo Purchase Order Match"
msgstr ""
-#: plugin/base/barcodes/api.py:639
+#: plugin/base/barcodes/api.py:643
msgid "No plugin match for supplier barcode"
msgstr "供應商條碼未匹配任何模組"
-#: plugin/base/barcodes/api.py:692
+#: plugin/base/barcodes/api.py:696
msgid "Multiple matching line items found"
msgstr "找到多個匹配的行項目"
-#: plugin/base/barcodes/api.py:695
+#: plugin/base/barcodes/api.py:699
msgid "No matching line item found"
msgstr "未找到匹配的行項目"
-#: plugin/base/barcodes/api.py:741
+#: plugin/base/barcodes/api.py:745
msgid "No sales order provided"
msgstr "未提供銷售訂單"
-#: plugin/base/barcodes/api.py:750
+#: plugin/base/barcodes/api.py:754
msgid "Barcode does not match an existing stock item"
msgstr "條形碼與現有的庫存項不匹配"
-#: plugin/base/barcodes/api.py:766
+#: plugin/base/barcodes/api.py:770
msgid "Stock item does not match line item"
msgstr "庫存項與行項目不匹配"
-#: plugin/base/barcodes/api.py:796
+#: plugin/base/barcodes/api.py:800
msgid "Insufficient stock available"
msgstr "可用庫存不足"
-#: plugin/base/barcodes/api.py:809
+#: plugin/base/barcodes/api.py:813
msgid "Stock item allocated to sales order"
msgstr "庫存項已分配到銷售訂單"
-#: plugin/base/barcodes/api.py:812
+#: plugin/base/barcodes/api.py:816
msgid "Not enough information"
msgstr "沒有足夠的信息"
@@ -7992,7 +8012,7 @@ msgstr "邊框"
msgid "Print a border around each label"
msgstr "打印每個標籤的邊框"
-#: plugin/builtin/labels/label_sheet.py:50 report/models.py:396
+#: plugin/builtin/labels/label_sheet.py:50 report/models.py:397
msgid "Landscape"
msgstr "橫屏模式"
@@ -8072,77 +8092,77 @@ msgstr "為掃描 TME 條形碼提供支持"
msgid "The Supplier which acts as 'TME'"
msgstr "作為‘TME’的供應商"
-#: plugin/installer.py:240 plugin/installer.py:344 plugin/serializers.py:169
+#: plugin/installer.py:239 plugin/installer.py:343 plugin/serializers.py:169
#: plugin/serializers.py:275
msgid "Only superuser accounts can administer plugins"
msgstr "只有超級使用者帳號可以管理外掛程式"
-#: plugin/installer.py:243
+#: plugin/installer.py:242
msgid "Plugin installation is disabled"
msgstr "插件安裝已禁用"
-#: plugin/installer.py:273
+#: plugin/installer.py:272
msgid "No package name or URL provided for installation"
msgstr "未提供要安裝的套件名稱或 URL"
-#: plugin/installer.py:277
+#: plugin/installer.py:276
msgid "Invalid characters in package name or URL"
msgstr "套件名稱或 URL 中包含無效字元"
-#: plugin/installer.py:287
+#: plugin/installer.py:286
msgid "Installed plugin successfully"
msgstr "插件安裝成功"
-#: plugin/installer.py:292
+#: plugin/installer.py:291
#, python-brace-format
msgid "Installed plugin into {path}"
msgstr "插件安裝到 {path}"
-#: plugin/installer.py:318
+#: plugin/installer.py:317
msgid "Plugin was not found in registry"
msgstr "在插件倉庫中找不到插件"
-#: plugin/installer.py:321
+#: plugin/installer.py:320
msgid "Plugin is not a packaged plugin"
msgstr "插件不是一個打包的插件"
-#: plugin/installer.py:324
+#: plugin/installer.py:323
msgid "Plugin package name not found"
msgstr "找不到插件包名稱"
-#: plugin/installer.py:327
+#: plugin/installer.py:326
msgid "Only staff users can administer plugins"
msgstr "只有員工用户可以管理插件"
-#: plugin/installer.py:347
+#: plugin/installer.py:346
msgid "Plugin uninstalling is disabled"
msgstr "插件卸載已禁用"
-#: plugin/installer.py:351
+#: plugin/installer.py:350
msgid "Plugin cannot be uninstalled as it is currently active"
msgstr "插件無法卸載,因為它目前處於激活狀態"
-#: plugin/installer.py:357
+#: plugin/installer.py:356
msgid "Plugin cannot be uninstalled as it is mandatory"
msgstr "不可解除安裝此模組(屬於強制)"
-#: plugin/installer.py:362
+#: plugin/installer.py:361
msgid "Plugin cannot be uninstalled as it is a sample plugin"
msgstr "不可解除安裝此模組(範例模組)"
-#: plugin/installer.py:367
+#: plugin/installer.py:366
msgid "Plugin cannot be uninstalled as it is a built-in plugin"
msgstr "不可解除安裝此模組(內建模組)"
-#: plugin/installer.py:371
+#: plugin/installer.py:370
msgid "Plugin is not installed"
msgstr "模組尚未安裝"
-#: plugin/installer.py:389
+#: plugin/installer.py:388
msgid "Plugin installation not found"
msgstr "找不到模組安裝紀錄"
-#: plugin/installer.py:405
+#: plugin/installer.py:404
msgid "Uninstalled plugin successfully"
msgstr "插件卸載成功"
@@ -8194,21 +8214,21 @@ msgstr "軟件包插件"
msgid "Plugin"
msgstr "插件"
-#: plugin/plugin.py:388
+#: plugin/plugin.py:389
msgid "No author found"
msgstr "未找到作者"
-#: plugin/registry.py:786
+#: plugin/registry.py:780
#, python-brace-format
msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}"
msgstr "插件 '{p}' 與當前 InvenTree 版本{v} 不兼容"
-#: plugin/registry.py:789
+#: plugin/registry.py:783
#, python-brace-format
msgid "Plugin requires at least version {v}"
msgstr "插件所需最低版本 {v}"
-#: plugin/registry.py:791
+#: plugin/registry.py:785
#, python-brace-format
msgid "Plugin requires at most version {v}"
msgstr "插件所需最高版本 {v}"
@@ -8481,136 +8501,136 @@ msgstr "法律"
msgid "Letter"
msgstr "字母"
-#: report/models.py:130
+#: report/models.py:131
msgid "Template file with this name already exists"
msgstr "已存在具有此名稱的模板"
-#: report/models.py:222
+#: report/models.py:223
msgid "Template name"
msgstr "模版名稱"
-#: report/models.py:228
+#: report/models.py:229
msgid "Template description"
msgstr "模板説明"
-#: report/models.py:234
+#: report/models.py:235
msgid "Revision number (auto-increments)"
msgstr "修訂編號 (自動增量)"
-#: report/models.py:240
+#: report/models.py:241
msgid "Attach to Model on Print"
msgstr "打印時附加到模型"
-#: report/models.py:242
+#: report/models.py:243
msgid "Save report output as an attachment against linked model instance when printing"
msgstr "打印時將報告輸出保存為附件與鏈接模型實例"
-#: report/models.py:290
+#: report/models.py:291
msgid "Filename Pattern"
msgstr "文件名樣式"
-#: report/models.py:291
+#: report/models.py:292
msgid "Pattern for generating filenames"
msgstr "生成文件名模式"
-#: report/models.py:296
+#: report/models.py:297
msgid "Template is enabled"
msgstr "模板已啓用"
-#: report/models.py:303
+#: report/models.py:304
msgid "Target model type for template"
msgstr "模版的目標模型類型"
-#: report/models.py:323
+#: report/models.py:324
msgid "Filters"
msgstr "篩選器"
-#: report/models.py:324
+#: report/models.py:325
msgid "Template query filters (comma-separated list of key=value pairs)"
msgstr "模版查詢篩選器 (逗號分隔的鍵值對列表)"
-#: report/models.py:383 report/models.py:704
+#: report/models.py:384 report/models.py:718
msgid "Template file"
msgstr "模板包文件"
-#: report/models.py:391
+#: report/models.py:392
msgid "Page size for PDF reports"
msgstr "PDF 報告的頁面大小"
-#: report/models.py:397
+#: report/models.py:398
msgid "Render report in landscape orientation"
msgstr "橫向渲染報告"
-#: report/models.py:402
+#: report/models.py:403
msgid "Merge"
msgstr "合併"
-#: report/models.py:403
+#: report/models.py:404
msgid "Render a single report against selected items"
msgstr "針對所選項目產出合併單一報告"
-#: report/models.py:470
+#: report/models.py:471
#, python-brace-format
msgid "Report generated from template {self.name}"
msgstr "由模板 {self.name} 產生的報告"
-#: report/models.py:580 report/models.py:619 report/models.py:620
+#: report/models.py:581 report/models.py:620
msgid "Template syntax error"
msgstr "模板語法錯誤"
-#: report/models.py:587 report/models.py:626
+#: report/models.py:588 report/models.py:627
msgid "Error rendering report"
msgstr "報告渲染錯誤"
-#: report/models.py:647
+#: report/models.py:655
msgid "Error generating report"
msgstr "生成報告錯誤"
-#: report/models.py:678
+#: report/models.py:686
msgid "Error merging report outputs"
msgstr "合併報告輸出時發生錯誤"
-#: report/models.py:710
+#: report/models.py:724
msgid "Width [mm]"
msgstr "寬度 [mm]"
-#: report/models.py:711
+#: report/models.py:725
msgid "Label width, specified in mm"
msgstr "標籤寬度,以毫米為單位。"
-#: report/models.py:717
+#: report/models.py:731
msgid "Height [mm]"
msgstr "高度 [mm]"
-#: report/models.py:718
+#: report/models.py:732
msgid "Label height, specified in mm"
msgstr "標籤高度,以毫米為單位。"
-#: report/models.py:832
+#: report/models.py:846
msgid "Error printing labels"
msgstr "列印標籤時發生錯誤"
-#: report/models.py:851
+#: report/models.py:865
msgid "Snippet"
msgstr "代碼片段"
-#: report/models.py:852
+#: report/models.py:866
msgid "Report snippet file"
msgstr "報告代碼片段文件"
-#: report/models.py:859
+#: report/models.py:873
msgid "Snippet file description"
msgstr "代碼片段文件描述"
-#: report/models.py:877
+#: report/models.py:891
msgid "Asset"
msgstr "資產"
-#: report/models.py:878
+#: report/models.py:892
msgid "Report asset file"
msgstr "報告資產文件"
-#: report/models.py:885
+#: report/models.py:899
msgid "Asset file description"
msgstr "資產文件描述"
@@ -8766,200 +8786,200 @@ msgstr "沒有結果"
msgid "Transferred"
msgstr ""
-#: report/templatetags/report.py:167
+#: report/templatetags/report.py:192
msgid "Invalid media file path"
msgstr "無效的媒體檔案路徑"
-#: report/templatetags/report.py:186
+#: report/templatetags/report.py:211
msgid "Invalid static file path"
msgstr "無效的靜態檔案路徑"
-#: report/templatetags/report.py:288
+#: report/templatetags/report.py:313
msgid "Asset file not found"
msgstr "找不到資產檔案"
-#: report/templatetags/report.py:354 report/templatetags/report.py:470
+#: report/templatetags/report.py:379 report/templatetags/report.py:495
msgid "Image file not found"
msgstr "找不到圖片文件"
-#: report/templatetags/report.py:439
+#: report/templatetags/report.py:464
msgid "No image file specified"
msgstr "未指定影像檔案"
-#: report/templatetags/report.py:464
+#: report/templatetags/report.py:489
msgid "part_image tag requires a Part instance"
msgstr "parpart_image 標籤需要一個零件實例"
-#: report/templatetags/report.py:562
+#: report/templatetags/report.py:581
msgid "company_image tag requires a Company instance"
msgstr "公司_圖片標籤需要一個公司實例"
-#: stock/api.py:288
+#: stock/api.py:289
msgid "Filter by location depth"
msgstr "按位置深度篩選"
-#: stock/api.py:308
+#: stock/api.py:309
msgid "Filter by top-level locations"
msgstr "按頂級位置篩選"
-#: stock/api.py:323
+#: stock/api.py:324
msgid "Include sub-locations in filtered results"
msgstr "在篩選結果中包含子地點"
-#: stock/api.py:344 stock/serializers.py:1252
+#: stock/api.py:345 stock/serializers.py:1263
msgid "Parent Location"
msgstr "上級地點"
-#: stock/api.py:345
+#: stock/api.py:346
msgid "Filter by parent location"
msgstr "按上級位置篩選"
-#: stock/api.py:611
+#: stock/api.py:625
msgid "Part name (case insensitive)"
msgstr "零件名稱(不分大小寫)"
-#: stock/api.py:617
+#: stock/api.py:631
msgid "Part name contains (case insensitive)"
msgstr "零件名稱包含(不分大小寫)"
-#: stock/api.py:623
+#: stock/api.py:637
msgid "Part name (regex)"
msgstr "零件名稱(正則)"
-#: stock/api.py:628
+#: stock/api.py:642
msgid "Part IPN (case insensitive)"
msgstr "零件 IPN(不分大小寫)"
-#: stock/api.py:634
+#: stock/api.py:648
msgid "Part IPN contains (case insensitive)"
msgstr "零件 IPN 包含(不分大小寫)"
-#: stock/api.py:640
+#: stock/api.py:654
msgid "Part IPN (regex)"
msgstr "零件 IPN(正則)"
-#: stock/api.py:652
+#: stock/api.py:666
msgid "Minimum stock"
msgstr "最小庫存"
-#: stock/api.py:656
+#: stock/api.py:670
msgid "Maximum stock"
msgstr "最大庫存"
-#: stock/api.py:659
+#: stock/api.py:673
msgid "Status Code"
msgstr "狀態代碼"
-#: stock/api.py:703
+#: stock/api.py:717
msgid "External Location"
msgstr "外部地點"
-#: stock/api.py:802
+#: stock/api.py:816
msgid "Consumed by Build Order"
msgstr "被生產工單消耗"
-#: stock/api.py:812
+#: stock/api.py:826
msgid "Installed in other stock item"
msgstr "已安裝於其他庫存項"
-#: stock/api.py:901
+#: stock/api.py:915
msgid "Part Tree"
msgstr "零件樹"
-#: stock/api.py:930
+#: stock/api.py:944
msgid "Updated before"
msgstr "更新時間早於"
-#: stock/api.py:934
+#: stock/api.py:948
msgid "Updated after"
msgstr "更新時間晚於"
-#: stock/api.py:938
+#: stock/api.py:952
msgid "Stocktake Before"
msgstr "盤點日期早於"
-#: stock/api.py:942
+#: stock/api.py:956
msgid "Stocktake After"
msgstr "盤點日期晚於"
-#: stock/api.py:946
+#: stock/api.py:960
msgid "Has Stocktake Date"
msgstr ""
-#: stock/api.py:957
+#: stock/api.py:971
msgid "Expiry date before"
msgstr "過期日期前"
-#: stock/api.py:961
+#: stock/api.py:975
msgid "Expiry date after"
msgstr "過期日期後"
-#: stock/api.py:964 stock/serializers.py:663
+#: stock/api.py:978 stock/serializers.py:663
msgid "Stale"
msgstr "過期"
-#: stock/api.py:990
+#: stock/api.py:1004
msgid "Provide a StockItem PK to exclude that item and all its descendants"
msgstr "提供一個 StockItem PK 以排除該項目及其所有子項目"
-#: stock/api.py:1008
+#: stock/api.py:1022
msgid "Cascade Locations"
msgstr "級聯位置"
-#: stock/api.py:1009
+#: stock/api.py:1023
msgid "If true, include items in child locations of the given location"
msgstr "若為 true,則包含給定位置的子位置中的項目"
-#: stock/api.py:1015
+#: stock/api.py:1029
msgid "Filter by numeric Location ID or the literal 'null'"
msgstr "依數字位置 ID 或常值 'null' 篩選"
-#: stock/api.py:1117
+#: stock/api.py:1131
msgid "Quantity is required"
msgstr "請先輸入數量"
-#: stock/api.py:1122
+#: stock/api.py:1136
msgid "Valid part must be supplied"
msgstr "必須提供有效的零件"
-#: stock/api.py:1153
+#: stock/api.py:1167
msgid "The given supplier part does not exist"
msgstr "給定的供應商零件不存在"
-#: stock/api.py:1163
+#: stock/api.py:1177
msgid "The supplier part has a pack size defined, but flag use_pack_size not set"
msgstr "供應商零件有定義的包裝大小,但 use_pack_size 標誌未設置"
-#: stock/api.py:1195
+#: stock/api.py:1209
msgid "Serial numbers cannot be supplied for a non-trackable part"
msgstr "不能為不可跟蹤的零件提供序列號"
-#: stock/api.py:1440
+#: stock/api.py:1454
msgid "Include Installed"
msgstr "包含已安裝"
-#: stock/api.py:1442
+#: stock/api.py:1456
msgid "If true, include test results for items installed underneath the given stock item"
msgstr "若為 true,則包含安裝在給定庫存項目下方的項目的測試結果"
-#: stock/api.py:1449
+#: stock/api.py:1463
msgid "Filter by numeric Stock Item ID"
msgstr "使用數字庫存品項 ID 做過濾"
-#: stock/api.py:1470
+#: stock/api.py:1484
#, python-brace-format
msgid "Stock item with ID {id} does not exist"
msgstr "庫存品項 ID {id} 不存在"
-#: stock/api.py:1547
+#: stock/api.py:1558
msgid "Include Part Variants"
msgstr "包括零件變數"
-#: stock/api.py:1577
+#: stock/api.py:1588
msgid "Date after"
msgstr "日前之後"
-#: stock/api.py:1581
+#: stock/api.py:1592
msgid "Date before"
msgstr "日期之前"
@@ -8995,7 +9015,7 @@ msgstr "選擇所有者"
msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations."
msgstr "庫存項可能不直接位於結構庫存地點,但可能位於其子地點。"
-#: stock/models.py:213 users/models.py:495
+#: stock/models.py:213 users/models.py:493
msgid "External"
msgstr "外部"
@@ -9101,7 +9121,7 @@ msgstr "為此庫存項目選擇匹配的供應商零件"
msgid "Where is this stock item located?"
msgstr "這個庫存物品在哪裏?"
-#: stock/models.py:1109 stock/serializers.py:1711
+#: stock/models.py:1109 stock/serializers.py:1722
msgid "Packaging this stock item is stored in"
msgstr "包裝此庫存物品存儲在"
@@ -9117,7 +9137,7 @@ msgstr "此項目是否安裝在另一個項目中?"
msgid "Serial number for this item"
msgstr "此項目的序列號"
-#: stock/models.py:1156 stock/serializers.py:1696
+#: stock/models.py:1156 stock/serializers.py:1707
msgid "Batch code for this stock item"
msgstr "此庫存項的批號"
@@ -9206,7 +9226,7 @@ msgstr "數量不匹配序列號"
msgid "Cannot assign stock to structural location"
msgstr "無法將庫存分配到結構位置"
-#: stock/models.py:2141 stock/models.py:3132
+#: stock/models.py:2141 stock/models.py:3191
msgid "Test template does not exist"
msgstr "測試模板不存在"
@@ -9226,7 +9246,7 @@ msgstr "庫存項包含其他項目"
msgid "Stock item has been assigned to a customer"
msgstr "庫存項已分配給客户"
-#: stock/models.py:2172 stock/models.py:2358
+#: stock/models.py:2172 stock/models.py:2404
msgid "Stock item is currently in production"
msgstr "庫存項目前正在生產"
@@ -9234,7 +9254,7 @@ msgstr "庫存項目前正在生產"
msgid "Serialized stock cannot be merged"
msgstr "序列化的庫存不能合併"
-#: stock/models.py:2182 stock/serializers.py:1566
+#: stock/models.py:2182 stock/serializers.py:1577
msgid "Duplicate stock items"
msgstr "複製庫存項"
@@ -9250,71 +9270,71 @@ msgstr "庫存項必須是同一供應商的零件"
msgid "Stock status codes must match"
msgstr "庫存狀態碼必須匹配"
-#: stock/models.py:2503
+#: stock/models.py:2558
msgid "StockItem cannot be moved as it is not in stock"
msgstr "庫存項不能移動,因為它沒有庫存"
-#: stock/models.py:3014
+#: stock/models.py:3073
msgid "Stock Item Tracking"
msgstr "庫存項跟蹤"
-#: stock/models.py:3064
+#: stock/models.py:3123
msgid "Entry notes"
msgstr "條目註釋"
-#: stock/models.py:3104
+#: stock/models.py:3163
msgid "Stock Item Test Result"
msgstr "庫存項測試結果"
-#: stock/models.py:3135
+#: stock/models.py:3194
msgid "Value must be provided for this test"
msgstr "必須為此測試提供值"
-#: stock/models.py:3139
+#: stock/models.py:3198
msgid "Attachment must be uploaded for this test"
msgstr "測試附件必須上傳"
-#: stock/models.py:3144
+#: stock/models.py:3203
msgid "Invalid value for this test"
msgstr "此測試的值無效"
-#: stock/models.py:3168
+#: stock/models.py:3227
msgid "Test result"
msgstr "測試結果"
-#: stock/models.py:3175
+#: stock/models.py:3234
msgid "Test output value"
msgstr "測試輸出值"
-#: stock/models.py:3183 stock/serializers.py:260
+#: stock/models.py:3242 stock/serializers.py:260
msgid "Test result attachment"
msgstr "測驗結果附件"
-#: stock/models.py:3187
+#: stock/models.py:3246
msgid "Test notes"
msgstr "測試備註"
-#: stock/models.py:3195
+#: stock/models.py:3254
msgid "Test station"
msgstr "測試站"
-#: stock/models.py:3196
+#: stock/models.py:3255
msgid "The identifier of the test station where the test was performed"
msgstr "進行測試的測試站的標識符"
-#: stock/models.py:3202
+#: stock/models.py:3261
msgid "Started"
msgstr "已開始"
-#: stock/models.py:3203
+#: stock/models.py:3262
msgid "The timestamp of the test start"
msgstr "測試開始的時間戳"
-#: stock/models.py:3209
+#: stock/models.py:3268
msgid "Finished"
msgstr "已完成"
-#: stock/models.py:3210
+#: stock/models.py:3269
msgid "The timestamp of the test finish"
msgstr "測試結束的時間戳"
@@ -9398,7 +9418,7 @@ msgstr "輸入新項目的序列號"
msgid "Supplier Part Number"
msgstr "供應商零件編號"
-#: stock/serializers.py:655 users/models.py:185
+#: stock/serializers.py:655 users/models.py:183
msgid "Expired"
msgstr "已過期"
@@ -9428,8 +9448,8 @@ msgstr "未提供庫存項"
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr "數量不得超過現有庫存量 ({q})"
-#: stock/serializers.py:743 stock/serializers.py:1523 stock/serializers.py:1862
-#: stock/serializers.py:1911
+#: stock/serializers.py:743 stock/serializers.py:1534 stock/serializers.py:1882
+#: stock/serializers.py:1973
msgid "Destination stock location"
msgstr "目標庫存位置"
@@ -9501,127 +9521,131 @@ msgstr "選擇要更改狀態的庫存項目"
msgid "No stock items selected"
msgstr "未選擇庫存商品"
-#: stock/serializers.py:1165 stock/serializers.py:1258
+#: stock/serializers.py:1176 stock/serializers.py:1269
msgid "Sublocations"
msgstr "轉租"
-#: stock/serializers.py:1183
+#: stock/serializers.py:1194
msgid "Delete Stock Items"
msgstr ""
-#: stock/serializers.py:1184
+#: stock/serializers.py:1195
msgid "Delete all stock items contained within this location"
msgstr ""
-#: stock/serializers.py:1189
+#: stock/serializers.py:1200
msgid "Delete Sublocations"
msgstr ""
-#: stock/serializers.py:1190
+#: stock/serializers.py:1201
msgid "Delete all sub-locations contained within this location"
msgstr ""
-#: stock/serializers.py:1253
+#: stock/serializers.py:1264
msgid "Parent stock location"
msgstr "上級庫存地點"
-#: stock/serializers.py:1391
+#: stock/serializers.py:1402
msgid "Part must be salable"
msgstr "零件必須可銷售"
-#: stock/serializers.py:1395
+#: stock/serializers.py:1406
msgid "Item is allocated to a sales order"
msgstr "物料已分配到銷售訂單"
-#: stock/serializers.py:1399
+#: stock/serializers.py:1410
msgid "Item is allocated to a transfer order"
msgstr ""
-#: stock/serializers.py:1403
+#: stock/serializers.py:1414
msgid "Item is allocated to a build order"
msgstr "項目被分配到生產訂單中"
-#: stock/serializers.py:1427
+#: stock/serializers.py:1438
msgid "Customer to assign stock items"
msgstr "客户分配庫存項目"
-#: stock/serializers.py:1433
+#: stock/serializers.py:1444
msgid "Selected company is not a customer"
msgstr "所選公司不是客户"
-#: stock/serializers.py:1441
+#: stock/serializers.py:1452
msgid "Stock assignment notes"
msgstr "庫存分配説明"
-#: stock/serializers.py:1451 stock/serializers.py:1739
+#: stock/serializers.py:1462 stock/serializers.py:1759
msgid "A list of stock items must be provided"
msgstr "必須提供庫存物品清單"
-#: stock/serializers.py:1530
+#: stock/serializers.py:1541
msgid "Stock merging notes"
msgstr "庫存合併説明"
-#: stock/serializers.py:1535
+#: stock/serializers.py:1546
msgid "Allow mismatched suppliers"
msgstr "允許不匹配的供應商"
-#: stock/serializers.py:1536
+#: stock/serializers.py:1547
msgid "Allow stock items with different supplier parts to be merged"
msgstr "允許合併具有不同供應商零件的庫存項目"
-#: stock/serializers.py:1541
+#: stock/serializers.py:1552
msgid "Allow mismatched status"
msgstr "允許不匹配的狀態"
-#: stock/serializers.py:1542
+#: stock/serializers.py:1553
msgid "Allow stock items with different status codes to be merged"
msgstr "允許合併具有不同狀態代碼的庫存項目"
-#: stock/serializers.py:1552
+#: stock/serializers.py:1563
msgid "At least two stock items must be provided"
msgstr "必須提供至少兩件庫存物品"
-#: stock/serializers.py:1619
+#: stock/serializers.py:1630
msgid "No Change"
msgstr "無更改"
-#: stock/serializers.py:1657
+#: stock/serializers.py:1668
msgid "StockItem primary key value"
msgstr "庫存項主鍵值"
-#: stock/serializers.py:1670
+#: stock/serializers.py:1681
msgid "Stock item is not in stock"
msgstr "庫存項無庫存"
-#: stock/serializers.py:1673
+#: stock/serializers.py:1684
msgid "Stock item is already in stock"
msgstr "庫存項已在庫"
-#: stock/serializers.py:1687
+#: stock/serializers.py:1698
msgid "Quantity must not be negative"
msgstr "數量不可為負"
-#: stock/serializers.py:1729
-msgid "Stock transaction notes"
-msgstr "庫存交易記錄"
-
-#: stock/serializers.py:1758
-msgid "Set stock location for counted items (optional)"
-msgstr ""
-
-#: stock/serializers.py:1917
+#: stock/serializers.py:1728 stock/serializers.py:1979
msgid "Merge into existing stock"
msgstr "合併至現有庫存"
-#: stock/serializers.py:1918
+#: stock/serializers.py:1730
+msgid "Merge this item into existing stock at the destination if possible"
+msgstr ""
+
+#: stock/serializers.py:1749
+msgid "Stock transaction notes"
+msgstr "庫存交易記錄"
+
+#: stock/serializers.py:1778
+msgid "Set stock location for counted items (optional)"
+msgstr ""
+
+#: stock/serializers.py:1980
msgid "Merge returned items into existing stock items if possible"
msgstr "可行時將退回項目併入現有庫存"
-#: stock/serializers.py:1961
+#: stock/serializers.py:2023
msgid "Next Serial Number"
msgstr "下一個序列號"
-#: stock/serializers.py:1967
+#: stock/serializers.py:2029
msgid "Previous Serial Number"
msgstr "上一個序列號"
@@ -9919,7 +9943,7 @@ msgstr "權限"
msgid "Important dates"
msgstr "重要日期"
-#: users/authentication.py:30 users/models.py:151
+#: users/authentication.py:30 users/models.py:149
msgid "Token has been revoked"
msgstr "令牌已被撤銷"
@@ -9927,163 +9951,163 @@ msgstr "令牌已被撤銷"
msgid "Token has expired"
msgstr "令牌已過期"
-#: users/models.py:94
+#: users/models.py:92
msgid "API Token"
msgstr "API 令牌"
-#: users/models.py:95
+#: users/models.py:93
msgid "API Tokens"
msgstr "API 令牌"
-#: users/models.py:131
+#: users/models.py:129
msgid "Token Name"
msgstr "令牌名稱"
-#: users/models.py:132
+#: users/models.py:130
msgid "Custom token name"
msgstr "自定義令牌名稱"
-#: users/models.py:138
+#: users/models.py:136
msgid "Token expiry date"
msgstr "令牌過期日期"
-#: users/models.py:146
+#: users/models.py:144
msgid "Last Seen"
msgstr "最近一次在線"
-#: users/models.py:147
+#: users/models.py:145
msgid "Last time the token was used"
msgstr "最近使用令牌的時間"
-#: users/models.py:151
+#: users/models.py:149
msgid "Revoked"
msgstr "撤銷"
-#: users/models.py:227
+#: users/models.py:225
msgid "Permission set"
msgstr "權限設置"
-#: users/models.py:240
+#: users/models.py:238
msgid "View"
msgstr "查看"
-#: users/models.py:240
+#: users/models.py:238
msgid "Permission to view items"
msgstr "查看項目的權限"
-#: users/models.py:244
+#: users/models.py:242
msgid "Add"
msgstr "添加"
-#: users/models.py:244
+#: users/models.py:242
msgid "Permission to add items"
msgstr "添加項目的權限"
-#: users/models.py:248
+#: users/models.py:246
msgid "Change"
msgstr "更改"
-#: users/models.py:250
+#: users/models.py:248
msgid "Permissions to edit items"
msgstr "編輯項目的權限"
-#: users/models.py:254
+#: users/models.py:252
msgid "Delete"
msgstr "刪除"
-#: users/models.py:256
+#: users/models.py:254
msgid "Permission to delete items"
msgstr "刪除項目的權限"
-#: users/models.py:493
+#: users/models.py:491
msgid "Bot"
msgstr "機器人"
-#: users/models.py:494
+#: users/models.py:492
msgid "Internal"
msgstr "內部"
-#: users/models.py:496
+#: users/models.py:494
msgid "Guest"
msgstr "訪客"
-#: users/models.py:505
+#: users/models.py:503
msgid "Language"
msgstr "語言 LANG"
-#: users/models.py:506
+#: users/models.py:504
msgid "Preferred language for the user"
msgstr "使用者偏好語言"
-#: users/models.py:511
+#: users/models.py:509
msgid "Theme"
msgstr "主題"
-#: users/models.py:512
+#: users/models.py:510
msgid "Settings for the web UI as JSON - do not edit manually!"
msgstr "Web 介面設定(JSON,請勿手動編輯)"
-#: users/models.py:517
+#: users/models.py:515
msgid "Widgets"
msgstr "小工具"
-#: users/models.py:519
+#: users/models.py:517
msgid "Settings for the dashboard widgets as JSON - do not edit manually!"
msgstr "儀表板小工具設定(JSON,請勿手動編輯)"
-#: users/models.py:526
+#: users/models.py:524
msgid "Display Name"
msgstr "顯示名稱"
-#: users/models.py:527
+#: users/models.py:525
msgid "Chosen display name for the user"
msgstr "使用者自選顯示名稱"
-#: users/models.py:533
+#: users/models.py:531
msgid "Position"
msgstr "職稱"
-#: users/models.py:534
+#: users/models.py:532
msgid "Main job title or position"
msgstr "主要職稱或職位"
-#: users/models.py:541
+#: users/models.py:539
msgid "User status message"
msgstr "使用者狀態訊息"
-#: users/models.py:548
+#: users/models.py:546
msgid "User location information"
msgstr "使用者位置資訊"
-#: users/models.py:553
+#: users/models.py:551
msgid "User is actively using the system"
msgstr "使用者目前活躍"
-#: users/models.py:560
+#: users/models.py:558
msgid "Preferred contact information for the user"
msgstr "使用者偏好聯絡資訊"
-#: users/models.py:566
+#: users/models.py:564
msgid "User Type"
msgstr "使用者類型"
-#: users/models.py:567
+#: users/models.py:565
msgid "Which type of user is this?"
msgstr "此為哪種類型的使用者?"
-#: users/models.py:573
+#: users/models.py:571
msgid "Organisation"
msgstr "組織"
-#: users/models.py:574
+#: users/models.py:572
msgid "Users primary organisation/affiliation"
msgstr "使用者主要所屬組織"
-#: users/models.py:582
+#: users/models.py:580
msgid "Primary Group"
msgstr "主要群組"
-#: users/models.py:583
+#: users/models.py:581
msgid "Primary group for the user"
msgstr "使用者的主要群組"
diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py
index 17f9d8193f..6563bf1bc0 100644
--- a/src/backend/InvenTree/order/models.py
+++ b/src/backend/InvenTree/order/models.py
@@ -272,7 +272,7 @@ class ReturnOrderReportContext(report.mixins.BaseReportContext, TypedDict):
customer: Optional[Company]
-class TransferOrderReportContext(report.mixins.BaseReportContext, TypedDict):
+class TransferOrderReportContext(BaseOrderReportContext, TypedDict):
"""Context for the transfer order model.
Attributes:
@@ -639,7 +639,8 @@ class PurchaseOrder(TotalPriceMixin, Order):
def report_context(self) -> PurchaseOrderReportContext:
"""Return report context data for this PurchaseOrder."""
return_ctx = super().report_context()
- return_ctx.update({'supplier': self.supplier})
+
+ return_ctx.update({'supplier': self.supplier}) # ty:ignore[invalid-key]
return return_ctx
def get_absolute_url(self) -> str:
@@ -1372,7 +1373,8 @@ class SalesOrder(TotalPriceMixin, Order):
def report_context(self) -> SalesOrderReportContext:
"""Generate report context data for this SalesOrder."""
return_ctx = super().report_context()
- return_ctx.update({'customer': self.customer})
+
+ return_ctx.update({'customer': self.customer}) # ty:ignore[invalid-key]
return return_ctx
def get_absolute_url(self) -> str:
@@ -2931,7 +2933,8 @@ class ReturnOrder(TotalPriceMixin, Order):
def report_context(self) -> ReturnOrderReportContext:
"""Generate report context data for this ReturnOrder."""
return_ctx = super().report_context()
- return_ctx.update({'customer': self.customer})
+
+ return_ctx.update({'customer': self.customer}) # ty:ignore[invalid-key]
return return_ctx
def get_absolute_url(self):
diff --git a/src/backend/InvenTree/plugin/base/barcodes/api.py b/src/backend/InvenTree/plugin/base/barcodes/api.py
index cf9b0d8dd6..af84a5b4e8 100644
--- a/src/backend/InvenTree/plugin/base/barcodes/api.py
+++ b/src/backend/InvenTree/plugin/base/barcodes/api.py
@@ -153,7 +153,9 @@ class BarcodeView(CreateAPIView):
for current_plugin in plugins:
try:
- result = current_plugin.scan(barcode)
+ result = current_plugin.scan(barcode, user=request.user, **kwargs)
+ except PermissionDenied as exc:
+ raise exc
except Exception:
log_error('BarcodeView.scan_barcode', plugin=current_plugin.slug)
continue
@@ -282,7 +284,7 @@ class BarcodeAssign(BarcodeView):
# First check if the provided barcode matches an existing database entry
if inventree_barcode_plugin:
- result = inventree_barcode_plugin.scan(barcode)
+ result = inventree_barcode_plugin.scan(barcode, user=request.user, **kwargs)
if result is not None:
result['error'] = _('Barcode matches existing item')
@@ -459,7 +461,9 @@ class BarcodePOAllocate(BarcodeView):
manufacturer_part=response.get('manufacturerpart', None),
)
response['success'] = _('Matched supplier part')
- response['supplierpart'] = supplier_part.format_matched_response()
+ response['supplierpart'] = supplier_part.format_matched_response(
+ user=request.user
+ )
except ValidationError as e:
response['error'] = str(e)
@@ -524,7 +528,7 @@ class BarcodePOReceive(BarcodeView):
filter(lambda plugin: plugin.name == 'InvenTreeBarcode', plugins)
)
- if result := internal_barcode_plugin.scan(barcode):
+ if result := internal_barcode_plugin.scan(barcode, user=request.user, **kwargs):
if 'stockitem' in result:
response['error'] = _('Item has already been received')
self.log_scan(request, response, False)
diff --git a/src/backend/InvenTree/plugin/base/barcodes/mixins.py b/src/backend/InvenTree/plugin/base/barcodes/mixins.py
index fe9d2e684b..9189e6f3ba 100644
--- a/src/backend/InvenTree/plugin/base/barcodes/mixins.py
+++ b/src/backend/InvenTree/plugin/base/barcodes/mixins.py
@@ -42,7 +42,7 @@ class BarcodeMixin:
"""Does this plugin have everything needed to process a barcode."""
return True
- def scan(self, barcode_data):
+ def scan(self, barcode_data: str, user, **kwargs) -> dict | None:
"""Scan a barcode against this plugin.
This method is explicitly called from the /scan/ API endpoint,
@@ -261,7 +261,7 @@ class SupplierBarcodeMixin(BarcodeMixin):
'extract_barcode_fields must be implemented by each plugin'
)
- def scan(self, barcode_data: str) -> dict | None:
+ def scan(self, barcode_data: str, user, **kwargs) -> dict | None:
"""Perform a generic 'scan' operation on a supplier barcode.
The supplier barcode may provide sufficient information to match against
@@ -297,7 +297,7 @@ class SupplierBarcodeMixin(BarcodeMixin):
for k, v in matches.items():
if v and hasattr(v, 'pk'):
has_match = True
- data[k] = v.format_matched_response()
+ data[k] = v.format_matched_response(user=user)
if not has_match:
return None
diff --git a/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py b/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py
index cec6fc68ad..667ef8d4ed 100644
--- a/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py
+++ b/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py
@@ -15,6 +15,7 @@ class BarcodeAPITest(InvenTreeAPITestCase):
"""Tests for barcode api."""
fixtures = ['category', 'part', 'location', 'stock']
+ roles = ['stock.view', 'stock_location.view', 'part.view']
def setUp(self):
"""Setup for all tests."""
@@ -259,6 +260,7 @@ class SOAllocateTest(InvenTreeAPITestCase):
"""Unit tests for the barcode endpoint for allocating items to a sales order."""
fixtures = ['category', 'company', 'part', 'location', 'stock']
+ roles = ['stock.view']
@classmethod
def setUpTestData(cls):
@@ -343,10 +345,14 @@ class SOAllocateTest(InvenTreeAPITestCase):
# Test with barcode which points to a *part* instance
item.part.assign_barcode(barcode_data='abcde')
+ # missing permission for viewing the part - error
+ self.postBarcode('abcde', sales_order=self.sales_order.pk, expected_code=403)
+
+ # Add part.view role and test again
+ self.assignRole('part.view')
result = self.postBarcode(
'abcde', sales_order=self.sales_order.pk, expected_code=400
)
-
self.assertIn('does not match an existing stock item', str(result['error']))
def test_submit(self):
diff --git a/src/backend/InvenTree/plugin/broken/broken_file.py b/src/backend/InvenTree/plugin/broken/broken_file.py
index f56932e876..bf97149aef 100644
--- a/src/backend/InvenTree/plugin/broken/broken_file.py
+++ b/src/backend/InvenTree/plugin/broken/broken_file.py
@@ -7,4 +7,4 @@ class BrokenFileIntegrationPlugin(InvenTreePlugin):
"""An very broken plugin."""
-aaa = bb # noqa: F821
+aaa = bb # noqa: F821 # ty:ignore[unresolved-reference]
diff --git a/src/backend/InvenTree/plugin/builtin/barcodes/inventree_barcode.py b/src/backend/InvenTree/plugin/builtin/barcodes/inventree_barcode.py
index 10cf3189c8..c2f163fe8f 100644
--- a/src/backend/InvenTree/plugin/builtin/barcodes/inventree_barcode.py
+++ b/src/backend/InvenTree/plugin/builtin/barcodes/inventree_barcode.py
@@ -48,11 +48,11 @@ class InvenTreeInternalBarcodePlugin(SettingsMixin, BarcodeMixin, InvenTreePlugi
},
}
- def format_matched_response(self, label, model, instance):
+ def format_matched_response(self, label, model, instance, user, **kwargs):
"""Format a response for the scanned data."""
- return {label: instance.format_matched_response()}
+ return {label: instance.format_matched_response(user=user, **kwargs)}
- def scan(self, barcode_data):
+ def scan(self, barcode_data, user, **kwargs):
"""Scan a barcode against this plugin.
Here we are looking for a dict object which contains a reference to a particular InvenTree database object
@@ -79,7 +79,7 @@ class InvenTreeInternalBarcodePlugin(SettingsMixin, BarcodeMixin, InvenTreePlugi
try:
instance = model.objects.get(pk=int(pk))
- return self.format_matched_response(label, model, instance)
+ return self.format_matched_response(label, model, instance, user=user)
except (ValueError, model.DoesNotExist):
pass
@@ -111,7 +111,9 @@ class InvenTreeInternalBarcodePlugin(SettingsMixin, BarcodeMixin, InvenTreePlugi
instance = model.objects.get(pk=pk)
return {
- **self.format_matched_response(label, model, instance),
+ **self.format_matched_response(
+ label, model, instance, user=user
+ ),
'success': succcess_message,
}
except (ValueError, model.DoesNotExist):
@@ -129,7 +131,7 @@ class InvenTreeInternalBarcodePlugin(SettingsMixin, BarcodeMixin, InvenTreePlugi
if instance is not None:
return {
- **self.format_matched_response(label, model, instance),
+ **self.format_matched_response(label, model, instance, user=user),
'success': succcess_message,
}
diff --git a/src/backend/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py b/src/backend/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py
index 1dc1eb90b2..4ae09064af 100644
--- a/src/backend/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py
+++ b/src/backend/InvenTree/plugin/builtin/barcodes/test_inventree_barcode.py
@@ -11,6 +11,7 @@ class TestInvenTreeBarcode(InvenTreeAPITestCase):
"""Tests for the integrated InvenTreeBarcode barcode plugin."""
fixtures = ['category', 'part', 'location', 'stock', 'company', 'supplier_part']
+ roles = ['stock.view', 'stock_location.view', 'part.view']
def setUp(self):
"""Set up the test case."""
diff --git a/src/backend/InvenTree/plugin/builtin/suppliers/test_supplier_barcodes.py b/src/backend/InvenTree/plugin/builtin/suppliers/test_supplier_barcodes.py
index d194102581..d04993bef6 100644
--- a/src/backend/InvenTree/plugin/builtin/suppliers/test_supplier_barcodes.py
+++ b/src/backend/InvenTree/plugin/builtin/suppliers/test_supplier_barcodes.py
@@ -14,6 +14,13 @@ class SupplierBarcodeTests(InvenTreeAPITestCase):
"""Tests barcode parsing for all suppliers."""
SCAN_URL = reverse('api-barcode-scan')
+ roles = [
+ 'stock.view',
+ 'stock_location.view',
+ 'part.view',
+ 'company.view',
+ 'order.view',
+ ]
@classmethod
def setUpTestData(cls):
@@ -176,6 +183,8 @@ class SupplierBarcodeTests(InvenTreeAPITestCase):
class SupplierBarcodePOReceiveTests(InvenTreeAPITestCase):
"""Tests barcode scanning to receive a purchase order item."""
+ roles = ['stock.view', 'stock_location.view']
+
def setUp(self):
"""Create supplier part and purchase_order."""
super().setUp()
diff --git a/src/backend/InvenTree/plugin/helpers.py b/src/backend/InvenTree/plugin/helpers.py
index 79b97f4647..485f8c91b8 100644
--- a/src/backend/InvenTree/plugin/helpers.py
+++ b/src/backend/InvenTree/plugin/helpers.py
@@ -108,9 +108,6 @@ def handle_error(error, do_raise: bool = True, do_log: bool = True, log_name: st
def get_entrypoints():
"""Returns list for entrypoints for InvenTree plugins."""
- # on python before 3.12, we need to use importlib_metadata
- if sys.version_info < (3, 12):
- return entry_points().get('inventree_plugins', [])
return entry_points(group='inventree_plugins')
@@ -190,13 +187,11 @@ def get_modules(pkg, path=None):
continue
try:
- if sys.version_info < (3, 12):
- module = finder.find_module(name).load_module(name)
- else:
- spec = finder.find_spec(name)
- module = module_from_spec(spec)
- sys.modules[name] = module
- spec.loader.exec_module(module)
+ spec = finder.find_spec(name, path)
+ module = module_from_spec(spec)
+ sys.modules[name] = module
+ spec.loader.exec_module(module)
+
pkg_names = getattr(module, '__all__', None)
for k, v in vars(module).items():
if not k.startswith('_') and (pkg_names is None or k in pkg_names):
diff --git a/src/backend/InvenTree/plugin/installer.py b/src/backend/InvenTree/plugin/installer.py
index acf6584a8d..acff2ea55a 100644
--- a/src/backend/InvenTree/plugin/installer.py
+++ b/src/backend/InvenTree/plugin/installer.py
@@ -117,8 +117,7 @@ def plugins_file_hash():
try:
with pf.open('rb') as f:
- # Note: Once we support 3.11 as a minimum, we can use hashlib.file_digest
- return hashlib.sha256(f.read()).hexdigest()
+ return hashlib.file_digest(f, 'sha256').hexdigest()
except Exception:
log_error('plugins_file_hash', scope='plugins')
return None
diff --git a/src/backend/InvenTree/plugin/plugin.py b/src/backend/InvenTree/plugin/plugin.py
index 1e9518cc99..0c031b1608 100644
--- a/src/backend/InvenTree/plugin/plugin.py
+++ b/src/backend/InvenTree/plugin/plugin.py
@@ -7,6 +7,7 @@ import warnings
from datetime import datetime
from importlib.metadata import PackageNotFoundError, metadata
from pathlib import Path
+from sysconfig import get_path
from typing import Optional
from django.conf import settings
@@ -517,7 +518,6 @@ class InvenTreePlugin(VersionMixin, MixinBase, MetaBase):
return InvenTree.helpers.pui_url(f'/settings/admin/plugin/{config.pk}/')
return InvenTree.helpers.pui_url('/settings/admin/plugin/')
- # region package info
@mark_final
def _get_package_commit(self):
"""Get last git commit for the plugin."""
@@ -527,10 +527,9 @@ class InvenTreePlugin(VersionMixin, MixinBase, MetaBase):
@mark_final
def is_editable(cls):
"""Returns if the current part is editable."""
- from distutils.sysconfig import get_python_lib
-
pkg_name = cls.__name__.split('.')[0]
- dist_info = list(Path(get_python_lib()).glob(f'{pkg_name}-*.dist-info'))
+ py_lib = get_path('platlib')
+ dist_info = list(Path(py_lib).glob(f'{pkg_name}-*.dist-info'))
return bool(len(dist_info) == 1)
@classmethod
diff --git a/src/backend/InvenTree/plugin/registry.py b/src/backend/InvenTree/plugin/registry.py
index 46e57f0c10..4cac88f05b 100644
--- a/src/backend/InvenTree/plugin/registry.py
+++ b/src/backend/InvenTree/plugin/registry.py
@@ -585,15 +585,9 @@ class PluginsRegistry:
# Gather Modules
if parent_path:
- # On python 3.12 use new loader method
- if sys.version_info < (3, 12):
- raw_module = _load_source(
- plugin_dir, str(parent_obj.joinpath('__init__.py'))
- )
- else:
- raw_module = SourceFileLoader(
- plugin_dir, str(parent_obj.joinpath('__init__.py'))
- ).load_module()
+ raw_module = SourceFileLoader(
+ plugin_dir, str(parent_obj.joinpath('__init__.py'))
+ ).load_module()
else:
raw_module = importlib.import_module(plugin_dir)
diff --git a/src/backend/InvenTree/plugin/samples/supplier/supplier_sample.py b/src/backend/InvenTree/plugin/samples/supplier/supplier_sample.py
index 4ea7d761b8..4500da8c7c 100644
--- a/src/backend/InvenTree/plugin/samples/supplier/supplier_sample.py
+++ b/src/backend/InvenTree/plugin/samples/supplier/supplier_sample.py
@@ -66,7 +66,7 @@ class SampleSupplierPlugin(SupplierMixin, InvenTreePlugin):
name=p['name'],
description=p['description'],
exact=p['sku'] == term,
- price=f'{p["price"][1][0]:.2f}€',
+ price=f'{p["price"][1][0]:.2f}€', # ty:ignore[not-subscriptable]
link=p['link'],
image_url=p['image_url'],
existing_part=getattr(
diff --git a/src/backend/InvenTree/report/apps.py b/src/backend/InvenTree/report/apps.py
index e72ea19145..1dfc507553 100644
--- a/src/backend/InvenTree/report/apps.py
+++ b/src/backend/InvenTree/report/apps.py
@@ -73,7 +73,9 @@ class ReportConfig(AppConfig):
def cleanup(self):
"""Cleanup old label and report outputs."""
try:
- from report.tasks import cleanup_old_report_outputs # type: ignore[import]
+ from report.tasks import (
+ cleanup_old_report_outputs, # type: ignore[import] # ty: ignore[unresolved-import]
+ )
cleanup_old_report_outputs()
except Exception:
diff --git a/src/backend/InvenTree/report/templatetags/barcode.py b/src/backend/InvenTree/report/templatetags/barcode.py
index d6641a0abe..bc1abee247 100644
--- a/src/backend/InvenTree/report/templatetags/barcode.py
+++ b/src/backend/InvenTree/report/templatetags/barcode.py
@@ -1,6 +1,7 @@
"""Template tags for rendering various barcodes."""
from django import template
+from django.core.exceptions import ValidationError
from django.utils.safestring import mark_safe
import barcode as python_barcode
@@ -70,7 +71,7 @@ def qrcode(data: str, **kwargs) -> str:
data = str(data).strip()
if not data:
- raise ValueError("No data provided to 'qrcode' template tag")
+ raise ValidationError("qrcode: No data provided to 'qrcode' template tag")
# Extract other arguments from kwargs
fill_color = kwargs.pop('fill_color', 'black')
@@ -115,7 +116,7 @@ def barcode(data: str, barcode_class='code128', **kwargs) -> str:
data = str(data).strip()
if not data:
- raise ValueError("No data provided to 'barcode' template tag")
+ raise ValidationError("barcode: No data provided to 'barcode' template tag")
constructor = python_barcode.get_barcode_class(barcode_class)
@@ -134,17 +135,26 @@ def barcode(data: str, barcode_class='code128', **kwargs) -> str:
@register.simple_tag()
-def datamatrix(data: str, **kwargs) -> str:
+def datamatrix(
+ data: str,
+ rectangular: bool = False,
+ fill_color: str = 'black',
+ back_color: str = 'white',
+ scale: float = 1.0,
+ border: int = 1,
+ fmt: str = 'PNG',
+ **kwargs,
+) -> str:
"""Render a DataMatrix barcode.
Arguments:
data: Data to encode
-
- Keyword Arguments:
- fill_color (str): Foreground color (default = 'black')
- back_color (str): Background color (default = 'white')
- scale (float): Matrix scaling factor (default = 1)
- border (int): Border width (default = 1)
+ rectangular: Whether to generate a rectangular DataMatrix (default = False)
+ fill_color: Foreground color (default = 'black')
+ back_color: Background color (default = 'white')
+ scale: Scaling factor (default = 1)
+ border: Border width (default = 1)
+ fmt: Generated image format (default = 'PNG')
Returns:
image (str): base64 encoded image data
@@ -154,14 +164,11 @@ def datamatrix(data: str, **kwargs) -> str:
data = str(data).strip()
if not data:
- raise ValueError("No data provided to 'datamatrix' template tag")
+ raise ValidationError(
+ "datamatrix: No data provided to 'datamatrix' template tag"
+ )
- dm = DataMatrix(data)
-
- fill_color = kwargs.pop('fill_color', 'black')
- back_color = kwargs.pop('back_color', 'white')
-
- border = kwargs.pop('border', 1)
+ dm = DataMatrix(data, rect=rectangular)
try:
border = int(border)
@@ -180,8 +187,6 @@ def datamatrix(data: str, **kwargs) -> str:
except Exception:
bg = ImageColor.getcolor('white', 'RGB')
- scale = kwargs.pop('scale', 1)
-
height = len(dm.matrix) + 2 * border
width = len(dm.matrix[0]) + 2 * border
@@ -193,7 +198,8 @@ def datamatrix(data: str, **kwargs) -> str:
if value:
img.putpixel((x + border, y + border), fg)
- if scale != 1:
- img = img.resize((int(width * scale), int(height * scale)))
+ img = img.resize(
+ (int(width * scale), int(height * scale)), Image.Resampling.NEAREST
+ )
- return image_data(img, fmt='PNG')
+ return image_data(img, fmt=fmt)
diff --git a/src/backend/InvenTree/report/templatetags/report.py b/src/backend/InvenTree/report/templatetags/report.py
index 5ec71e1891..aad9db84b5 100644
--- a/src/backend/InvenTree/report/templatetags/report.py
+++ b/src/backend/InvenTree/report/templatetags/report.py
@@ -1021,7 +1021,7 @@ def format_number(
number = float(number)
if multiplier is not None:
- number *= multiplier
+ number *= float(multiplier)
if integer:
number = int(number)
diff --git a/src/backend/InvenTree/report/test_tags.py b/src/backend/InvenTree/report/test_tags.py
index b5bf18f806..047ce6a686 100644
--- a/src/backend/InvenTree/report/test_tags.py
+++ b/src/backend/InvenTree/report/test_tags.py
@@ -440,7 +440,6 @@ class ReportTagTest(PartImageTestMixin, InvenTreeTestCase):
]
for tz, fmt, locale, expected in tests:
- print(tz, fmt, locale, expected)
result = report_tags.format_datetime(
time, timezone=tz, fmt=fmt, locale=locale
)
@@ -857,7 +856,7 @@ class BarcodeTagTest(TestCase):
self.assertTrue(barcode.startswith('data:image/bmp;'))
# Test empty tag
- with self.assertRaises(ValueError):
+ with self.assertRaises(ValidationError):
barcode_tags.barcode('')
def test_qrcode(self):
@@ -877,7 +876,7 @@ class BarcodeTagTest(TestCase):
self.assertEqual(len(qrcode), 309720)
# Test empty tag
- with self.assertRaises(ValueError):
+ with self.assertRaises(ValidationError):
barcode_tags.qrcode('')
def test_clean_barcode(self):
@@ -908,7 +907,7 @@ class BarcodeTagTest(TestCase):
)
# Test empty tag
- with self.assertRaises(ValueError):
+ with self.assertRaises(ValidationError):
barcode_tags.datamatrix('')
# Failure cases with wrong args
diff --git a/src/backend/InvenTree/script/update_icons.py b/src/backend/InvenTree/script/update_icons.py
index ea24479456..716ffeb878 100644
--- a/src/backend/InvenTree/script/update_icons.py
+++ b/src/backend/InvenTree/script/update_icons.py
@@ -19,7 +19,7 @@ if __name__ == '__main__':
os.mkdir(STATIC_FOLDER)
print('Downloading tabler icons...')
- os.system(f'npm install --prefix {TMP_FOLDER} @tabler/icons @tabler/icons-webfont')
+ os.system(f'npm install --prefix {TMP_FOLDER} @tabler/icons @tabler/icons-webfont') # ty:ignore[deprecated]
print(f'Copying tabler icons to {STATIC_FOLDER}...')
diff --git a/src/backend/InvenTree/stock/api.py b/src/backend/InvenTree/stock/api.py
index 31ef0f915a..6557761651 100644
--- a/src/backend/InvenTree/stock/api.py
+++ b/src/backend/InvenTree/stock/api.py
@@ -18,6 +18,7 @@ from rest_framework.generics import GenericAPIView
from rest_framework.response import Response
from rest_framework.serializers import ValidationError
+import common.filters
import common.models
import common.settings
import InvenTree.helpers
diff --git a/src/backend/InvenTree/stock/models.py b/src/backend/InvenTree/stock/models.py
index c7c4f653fe..290377ff0b 100644
--- a/src/backend/InvenTree/stock/models.py
+++ b/src/backend/InvenTree/stock/models.py
@@ -2206,6 +2206,35 @@ class StockItem(
return True
+ def find_merge_target(self, location):
+ """Find an existing stock item at location that can absorb this item."""
+ if location is None:
+ return None
+
+ candidates = list(
+ StockItem.objects
+ .filter(part=self.part, location=location)
+ .exclude(pk=self.pk)
+ .order_by('pk')
+ )
+
+ if not candidates:
+ return None
+
+ if self.batch:
+ batch_matches = [c for c in candidates if c.batch == self.batch]
+ search_order = batch_matches + [
+ c for c in candidates if c not in batch_matches
+ ]
+ else:
+ search_order = candidates
+
+ for target in search_order:
+ if target.can_merge(other=self, raise_error=False):
+ return target
+
+ return None
+
@transaction.atomic
def merge_stock_items(self, other_items, raise_error=False, **kwargs):
"""Merge another stock item into this one; the two become one!
@@ -2227,7 +2256,7 @@ class StockItem(
user = kwargs.get('user')
location = kwargs.get('location', self.location)
- notes = kwargs.get('notes')
+ notes = kwargs.get('notes') or ''
parent_id = self.parent.pk if self.parent else None
@@ -2245,9 +2274,12 @@ class StockItem(
)
return
+ merged_quantity = Decimal(0)
+
for other in other_items:
tree_ids.add(other.tree_id)
+ merged_quantity += other.quantity
self.quantity += other.quantity
if other.purchase_price:
@@ -2271,15 +2303,25 @@ class StockItem(
other.delete()
+ transfer_deltas = kwargs.pop('transfer_deltas', None)
+
+ tracking_deltas = {
+ 'quantity': float(self.quantity),
+ 'added': float(merged_quantity),
+ }
+
+ if location:
+ tracking_deltas['location'] = location.pk
+
+ if transfer_deltas:
+ tracking_deltas = {**transfer_deltas, **tracking_deltas}
+
self.add_tracking_entry(
StockHistoryCode.MERGED_STOCK_ITEMS,
user,
quantity=self.quantity,
notes=notes,
- deltas={
- 'location': location.pk if location else None,
- 'quantity': self.quantity,
- },
+ deltas=tracking_deltas,
)
# Update the location of the item
@@ -2340,6 +2382,8 @@ class StockItem(
status: If provided, override the status (default = existing status)
packaging: If provided, override the packaging (default = existing packaging)
allow_production: If True, allow splitting of stock which is in production (default = False)
+ record_tracking: If False, skip tracking entries (for merge-on-transfer)
+ split_transfer_deltas: Optional dict to receive split tracking deltas
Returns:
The new StockItem object
@@ -2352,6 +2396,8 @@ class StockItem(
"""
# Run initial checks to test if the stock item can actually be "split"
allow_production = kwargs.get('allow_production', False)
+ record_tracking = kwargs.pop('record_tracking', True)
+ split_transfer_deltas = kwargs.pop('split_transfer_deltas', None)
# Cannot split a stock item which is in production
if self.is_building and not allow_production:
@@ -2424,15 +2470,23 @@ class StockItem(
new_stock.save(add_note=False)
- # Add a stock tracking entry for the newly created item
- new_stock.add_tracking_entry(
- StockHistoryCode.SPLIT_FROM_PARENT,
- user,
- quantity=quantity,
- notes=notes,
- location=location,
- deltas=deltas,
- )
+ if split_transfer_deltas is not None:
+ split_transfer_deltas.clear()
+ split_transfer_deltas.update(deltas)
+
+ if location:
+ split_transfer_deltas['location'] = location.pk
+
+ if record_tracking:
+ # Add a stock tracking entry for the newly created item
+ new_stock.add_tracking_entry(
+ StockHistoryCode.SPLIT_FROM_PARENT,
+ user,
+ quantity=quantity,
+ notes=notes,
+ location=location,
+ deltas=deltas,
+ )
# Copy the test results of this part to the new one
new_stock.copyTestResultsFrom(self)
@@ -2445,6 +2499,7 @@ class StockItem(
notes=notes,
location=location,
stockitem=new_stock,
+ record_tracking=record_tracking,
)
# Rebuild the tree for this parent item
@@ -2754,7 +2809,10 @@ class StockItem(
code: The stock history code to use
notes: Optional notes for the stock removal
status: Optionally adjust the stock status
+ record_tracking: If False, skip creating a tracking entry
"""
+ record_tracking = kwargs.pop('record_tracking', True)
+
# Cannot remove items from a serialized part
if self.serialized:
return False
@@ -2804,9 +2862,10 @@ class StockItem(
self.save(add_note=False)
- self.add_tracking_entry(
- code, user, notes=kwargs.get('notes', ''), deltas=deltas
- )
+ if record_tracking:
+ self.add_tracking_entry(
+ code, user, notes=kwargs.get('notes', ''), deltas=deltas
+ )
return True
diff --git a/src/backend/InvenTree/stock/serializers.py b/src/backend/InvenTree/stock/serializers.py
index 90b1770e62..64be85b563 100644
--- a/src/backend/InvenTree/stock/serializers.py
+++ b/src/backend/InvenTree/stock/serializers.py
@@ -1648,7 +1648,7 @@ class StockAdjustmentItemSerializer(serializers.Serializer):
class Meta:
"""Metaclass options."""
- fields = ['pk', 'quantity', 'batch', 'status', 'packaging']
+ fields = ['pk', 'quantity', 'batch', 'status', 'packaging', 'merge']
def __init__(self, *args, **kwargs):
"""Initialize the serializer."""
@@ -1722,6 +1722,15 @@ class StockAdjustmentItemSerializer(serializers.Serializer):
help_text=_('Packaging this stock item is stored in'),
)
+ merge = serializers.BooleanField(
+ default=False,
+ required=False,
+ label=_('Merge into existing stock'),
+ help_text=_(
+ 'Merge this item into existing stock at the destination if possible'
+ ),
+ )
+
class StockAdjustmentSerializer(serializers.Serializer):
"""Base class for managing stock adjustment actions via the API."""
@@ -1888,6 +1897,7 @@ class StockTransferSerializer(StockAdjustmentSerializer):
# Required fields
stock_item = item['pk']
quantity = item['quantity']
+ merge = item.get('merge', False)
# Optional fields
kwargs = {}
@@ -1896,6 +1906,47 @@ class StockTransferSerializer(StockAdjustmentSerializer):
if field_value := item.get(field_name, None):
kwargs[field_name] = field_value
+ if merge:
+ target = stock_item.find_merge_target(location)
+
+ if target:
+ merge_kwargs = {
+ 'location': location,
+ 'notes': notes,
+ 'user': request.user,
+ **kwargs,
+ }
+
+ if quantity < stock_item.quantity:
+ transfer_deltas = {}
+
+ piece = stock_item.splitStock(
+ quantity,
+ location,
+ request.user,
+ notes=notes,
+ allow_production=True,
+ record_tracking=False,
+ split_transfer_deltas=transfer_deltas,
+ **kwargs,
+ )
+ merge_kwargs['transfer_deltas'] = transfer_deltas
+ target.merge_stock_items([piece], **merge_kwargs)
+ else:
+ transfer_deltas = {'stockitem': stock_item.pk}
+
+ if location:
+ transfer_deltas['location'] = location.pk
+
+ for field_name in StockItem.optional_transfer_fields():
+ if field_name in kwargs:
+ transfer_deltas[field_name] = kwargs[field_name]
+
+ merge_kwargs['transfer_deltas'] = transfer_deltas
+ target.merge_stock_items([stock_item], **merge_kwargs)
+
+ continue
+
stock_item.move(
location, notes, request.user, quantity=quantity, **kwargs
)
diff --git a/src/backend/InvenTree/stock/test_api.py b/src/backend/InvenTree/stock/test_api.py
index 4299cfa83c..fdc0ebce54 100644
--- a/src/backend/InvenTree/stock/test_api.py
+++ b/src/backend/InvenTree/stock/test_api.py
@@ -2412,6 +2412,178 @@ class StocktakeTest(StockAPITestCase):
self.assertIn('does not exist', str(response.data['location']))
+class StockTransferMergeTest(StockAPITestCase):
+ """Tests for optional merge-on-transfer behavior."""
+
+ def setUp(self):
+ """Set up stock items for merge transfer tests."""
+ super().setUp()
+
+ self.part = Part.objects.get(pk=1)
+ self.dest = StockLocation.objects.get(pk=2)
+ self.source_loc = StockLocation.objects.get(pk=5)
+ self.url = reverse('api-stock-transfer')
+
+ # Remove fixture stock at the destination so merge targets are deterministic
+ StockItem.objects.filter(part=self.part, location=self.dest).delete()
+
+ def test_transfer_without_merge_creates_separate_lot(self):
+ """Transfer without merge leaves multiple stock rows at destination."""
+ existing = StockItem.objects.create(
+ part=self.part, location=self.dest, quantity=100
+ )
+ incoming = StockItem.objects.create(
+ part=self.part, location=self.source_loc, quantity=50
+ )
+
+ self.post(
+ self.url,
+ {
+ 'items': [{'pk': incoming.pk, 'quantity': 50, 'merge': False}],
+ 'location': self.dest.pk,
+ },
+ expected_code=201,
+ )
+
+ self.assertEqual(
+ StockItem.objects.filter(part=self.part, location=self.dest).count(), 2
+ )
+
+ existing.refresh_from_db()
+ self.assertEqual(existing.quantity, 100)
+
+ def test_transfer_with_merge_combines_lots(self):
+ """Transfer with merge combines into an existing compatible lot."""
+ existing = StockItem.objects.create(
+ part=self.part, location=self.dest, quantity=100
+ )
+ incoming = StockItem.objects.create(
+ part=self.part, location=self.source_loc, quantity=50
+ )
+
+ self.post(
+ self.url,
+ {
+ 'items': [{'pk': incoming.pk, 'quantity': 50, 'merge': True}],
+ 'location': self.dest.pk,
+ },
+ expected_code=201,
+ )
+
+ self.assertEqual(
+ StockItem.objects.filter(part=self.part, location=self.dest).count(), 1
+ )
+
+ existing.refresh_from_db()
+ self.assertEqual(existing.quantity, 150)
+ self.assertFalse(StockItem.objects.filter(pk=incoming.pk).exists())
+
+ def test_transfer_mixed_merge_per_item(self):
+ """Each transfer line can merge or move independently."""
+ existing = StockItem.objects.create(
+ part=self.part, location=self.dest, quantity=100
+ )
+ merge_incoming = StockItem.objects.create(
+ part=self.part, location=self.source_loc, quantity=30
+ )
+ separate_incoming = StockItem.objects.create(
+ part=self.part, location=self.source_loc, quantity=20
+ )
+
+ self.post(
+ self.url,
+ {
+ 'items': [
+ {'pk': merge_incoming.pk, 'quantity': 30, 'merge': True},
+ {'pk': separate_incoming.pk, 'quantity': 20, 'merge': False},
+ ],
+ 'location': self.dest.pk,
+ },
+ expected_code=201,
+ )
+
+ self.assertEqual(
+ StockItem.objects.filter(part=self.part, location=self.dest).count(), 2
+ )
+
+ existing.refresh_from_db()
+ self.assertEqual(existing.quantity, 130)
+ self.assertFalse(StockItem.objects.filter(pk=merge_incoming.pk).exists())
+ self.assertTrue(StockItem.objects.filter(pk=separate_incoming.pk).exists())
+
+ def test_transfer_merge_does_not_copy_source_tracking(self):
+ """Transfer merge keeps destination history and adds a single merge entry."""
+ existing = StockItem.objects.create(
+ part=self.part, location=self.dest, quantity=100
+ )
+ incoming = StockItem.objects.create(
+ part=self.part, location=self.source_loc, quantity=50
+ )
+
+ incoming.add_tracking_entry(
+ StockHistoryCode.STOCK_UPDATE, self.user, notes='Source tracking entry'
+ )
+
+ incoming_pk = incoming.pk
+ tracking_count = existing.tracking_info.count()
+
+ self.post(
+ self.url,
+ {
+ 'items': [{'pk': incoming.pk, 'quantity': 50, 'merge': True}],
+ 'location': self.dest.pk,
+ },
+ expected_code=201,
+ )
+
+ existing.refresh_from_db()
+
+ self.assertFalse(
+ existing.tracking_info.filter(notes='Source tracking entry').exists()
+ )
+ self.assertEqual(existing.tracking_info.count(), tracking_count + 1)
+ merge_entry = existing.tracking_info.filter(
+ tracking_type=StockHistoryCode.MERGED_STOCK_ITEMS
+ ).first()
+ self.assertIsNotNone(merge_entry)
+ self.assertEqual(merge_entry.deltas['added'], 50.0)
+ self.assertEqual(merge_entry.deltas['quantity'], 150.0)
+ self.assertEqual(merge_entry.deltas['stockitem'], incoming_pk)
+ self.assertEqual(merge_entry.deltas['location'], self.dest.pk)
+
+ def test_transfer_merge_partial_reuses_split_transfer_deltas(self):
+ """Partial merge reuses split transfer deltas on the merge tracking entry."""
+ existing = StockItem.objects.create(
+ part=self.part, location=self.dest, quantity=100
+ )
+ incoming = StockItem.objects.create(
+ part=self.part, location=self.source_loc, quantity=100
+ )
+
+ self.post(
+ self.url,
+ {
+ 'items': [{'pk': incoming.pk, 'quantity': 30, 'merge': True}],
+ 'location': self.dest.pk,
+ },
+ expected_code=201,
+ )
+
+ incoming.refresh_from_db()
+ self.assertEqual(incoming.quantity, 70)
+
+ merge_entry = existing.tracking_info.filter(
+ tracking_type=StockHistoryCode.MERGED_STOCK_ITEMS
+ ).first()
+ self.assertEqual(merge_entry.deltas['stockitem'], incoming.pk)
+ self.assertEqual(merge_entry.deltas['location'], self.dest.pk)
+ self.assertFalse(
+ incoming.tracking_info.filter(
+ tracking_type=StockHistoryCode.SPLIT_CHILD_ITEM
+ ).exists()
+ )
+
+
class StockItemDeletionTest(StockAPITestCase):
"""Tests for stock item deletion via the API."""
diff --git a/src/backend/InvenTree/stock/tests.py b/src/backend/InvenTree/stock/tests.py
index 9495432366..999fc030b0 100644
--- a/src/backend/InvenTree/stock/tests.py
+++ b/src/backend/InvenTree/stock/tests.py
@@ -729,6 +729,13 @@ class StockTest(StockTestBase):
self.assertEqual(s1.quantity, 60)
self.assertIsNone(s1.purchase_price)
+ merge_entry = s1.tracking_info.filter(
+ tracking_type=StockHistoryCode.MERGED_STOCK_ITEMS
+ ).first()
+ self.assertIsNotNone(merge_entry)
+ self.assertEqual(merge_entry.deltas['added'], 50.0)
+ self.assertEqual(merge_entry.deltas['quantity'], 60.0)
+
part.stock_items.all().delete()
# Create some stock items with pricing information
diff --git a/src/backend/InvenTree/users/models.py b/src/backend/InvenTree/users/models.py
index 54fb8ae2da..0e6e1eb316 100644
--- a/src/backend/InvenTree/users/models.py
+++ b/src/backend/InvenTree/users/models.py
@@ -47,9 +47,7 @@ User.add_to_class('__str__', user_model_str) # Overriding User.__str__
if settings.LDAP_AUTH:
- from django_auth_ldap.backend import ( # type: ignore[unresolved-import]
- populate_user,
- )
+ from django_auth_ldap.backend import populate_user # ty: ignore[unresolved-import]
@receiver(populate_user)
def create_email_address(user, **kwargs):
diff --git a/src/backend/requirements-3.14.txt b/src/backend/requirements-3.14.txt
index 55035af0c8..ecedc0c601 100644
--- a/src/backend/requirements-3.14.txt
+++ b/src/backend/requirements-3.14.txt
@@ -101,16 +101,16 @@ blessed==1.44.0 \
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-boto3==1.43.34 \
- --hash=sha256:42595057324606928c6e2432b3093978e4d722e0d432bce942f2a385702c0a43 \
- --hash=sha256:444207c6c883d4df3ea3b2c36df43ad492b86e0b889eebd2fc1d5ea8db0a8a1a
+boto3==1.43.36 \
+ --hash=sha256:42942dde254673abcbc9e6e60017c88341a4f49d99d24e1f2e290fb38138c26f \
+ --hash=sha256:587d7ee92a12e440ad12b0e7f11f3358f0c4d65b19f64726efc94aaf194aff28
# via
# -c src/backend/requirements.txt
# django-anymail
# django-storages
-botocore==1.43.34 \
- --hash=sha256:238a0269f33c5914b9343900b44767e783b3e8b6dcb6e065eac8b4495601c5df \
- --hash=sha256:ccc973cf30c6445b30afe5760f6dc949a80f1f862cb23d9c45747f2c814ece77
+botocore==1.43.36 \
+ --hash=sha256:3c65fdc39ed01d8dfde1e961b34038aed03c459f8ddf80717a12ac006475e49d \
+ --hash=sha256:4cae47d1b2d426316b85a0087d9e69e048f13bc003b5177d74639fe9dfd28205
# via
# -c src/backend/requirements.txt
# boto3
@@ -961,9 +961,9 @@ gunicorn==26.0.0 \
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-icalendar==7.1.3 \
- --hash=sha256:690f30aa50a76cbf854db5ad52654705db9c5cd0e1b152222f5d4b7854b60667 \
- --hash=sha256:eb03a0e215f30db689a72c49f18f998aabf17522eb0858a293c393510850727c
+icalendar==7.2.0 \
+ --hash=sha256:32dacc396101825b82f9f1bbdf691c02be613130d5ab7a457e553fcd20959fdd \
+ --hash=sha256:77922b6be57dfcc2e94f93063d2fd7e948ada9b5bdf7b08bebbc684b1b66c7c4
# via
# -c src/backend/requirements.txt
# django-ical
@@ -1023,9 +1023,9 @@ jsonschema-specifications==2025.9.1 \
# via
# -c src/backend/requirements.txt
# jsonschema
-jwcrypto==1.5.7 \
- --hash=sha256:70204d7cca406eda8c82352e3c41ba2d946610dafd19e54403f0a1f4f18633c6 \
- --hash=sha256:729463fefe28b6de5cf1ebfda3e94f1a1b41d2799148ef98a01cb9678ebe2bb0
+jwcrypto==1.5.8 \
+ --hash=sha256:85aeb475f808d56bbc2f2ed1f6f73e6a317c4011a4321505f02f0aed695a3742 \
+ --hash=sha256:c3d7114b6f6e65b52f6b7da817eb8cb8423e1da31e1ef13508447c81ecbdcc34
# via
# -c src/backend/requirements.txt
# django-oauth-toolkit
@@ -1267,34 +1267,34 @@ markupsafe==3.0.3 \
# via
# -c src/backend/requirements.txt
# jinja2
-nh3==0.3.5 \
- --hash=sha256:0a09f51806fd51b4fedbf9ea2b61fef388f19aef0d62fe51199d41648be14588 \
- --hash=sha256:207c01801d3e9bb8ec08f08689346bdd30ce15b8bf60013a925d08b5388962a4 \
- --hash=sha256:23a312224875f72cd16bde417f49071451877e29ef646a60e50fcb69407cc18a \
- --hash=sha256:2c069570b06aa848457713ad7af4a9905691291548c4466a9ad78ee95808382b \
- --hash=sha256:38748140bf76383ab7ce2dce0ad4cb663855d8fbc9098f7f3483673d09616a17 \
- --hash=sha256:387abd011e81959d5a35151a11350a0795c6edeb53ebfa02d2e882dc01299263 \
- --hash=sha256:3bb854485c9b33e5bb143ff3e49e577073bc6bc320f0ff8fc316dd89c0d3c101 \
- --hash=sha256:45855e14ff056064fec77133bfcf7cd691838168e5e17bbef075394954dc9dc8 \
- --hash=sha256:45e6a65dc88a300a2e3502cb9c8e6d1d6b831d6fba7470643333609c6aab1f30 \
- --hash=sha256:488928988caad25ba14b1eb5bc74e25e21f3b5e40341d956f3ce4a8bc19460dc \
- --hash=sha256:48f45e3e914be93a596431aa143dedf1582557bf41a58153c296048d6e3798c9 \
- --hash=sha256:50d401ab2d8e86d59e2126e3ab2a2f45840c405842b626d9a51624b3a33b6878 \
- --hash=sha256:52d877980d7ca01dc3baf3936bf844828bc6f332962227a684ed79c18cce14c3 \
- --hash=sha256:559e4c73b689e9a7aa97ac9760b1bc488038d7c1a575aa4ab5a0e19ee9630c0f \
- --hash=sha256:6ea58cc44d274c643b83547ca9654a0b1a817609b160601356f76a2b744c49ad \
- --hash=sha256:72c5bdedec27fa33de6a5326346ea8aa3fe54f6ac294d54c4b204fb66a9f1e79 \
- --hash=sha256:84bdeb082544fbcb77a12c034dd77d7da0556fdc0727b787eb6214b958c15e29 \
- --hash=sha256:8f85285700a18e9f3fc5bff41fe573fa84f81542ef13b48a89f9fecca0474d3b \
- --hash=sha256:acfd354e61accbe4c74f8017c6e397a776916dfe47c48643cf7fd84ade826f93 \
- --hash=sha256:c357f1d042c67f135a5e6babb2b0e3b9d9224ff4a3543240f597767b01384ffd \
- --hash=sha256:c3aae321f67ae66cff2a627115f106a377d4475d10b0e13d97959a13486b9a88 \
- --hash=sha256:c88605d8d468f7fc1b31e06129bc91d6c96f6c621776c9b504a0da9beac9df5f \
- --hash=sha256:de8e8621853b6470fe928c684ee0d3f39ea8086cebafe4c416486488dea7b68d \
- --hash=sha256:e49c9b564e6bcb03ecd2f057213df9a0de15a95812ac9db9600b590db23d3ae9 \
- --hash=sha256:ea232933394d1d58bf7c4bb348dc4660eae6604e1ae81cd2ba6d9ed80d390f3b \
- --hash=sha256:eeedc90ed8c42c327e8e10e621ccfa314fc6cce35d5929f4297ff1cdb89667c4 \
- --hash=sha256:fe3a787dc76b50de6bee54ef242f26c41dfe47654428e3e94f0fae5bb6dd2cc1
+nh3==0.3.6 \
+ --hash=sha256:082675ff87b9385ec430ffe6d5847ba7456cc39b73720cd4add472f9f4cffd56 \
+ --hash=sha256:2411e8c3cee81a1ddd62c2a5d50585c28aa5566d373ad1db92536b95ddb24ef2 \
+ --hash=sha256:25c733bee928530556b1db0ea46c52cf5aa686146e38e60a6fc7cb801ef91cec \
+ --hash=sha256:2f90d9a0cfdbee218994fdaaeeb5a0fde62d08f35e4eef0378ec1e2200172fd0 \
+ --hash=sha256:34d2b0d934156b87ee114f599a3ba9b8b9e17b5d79652ba3a13fa50903de965e \
+ --hash=sha256:36d06341bd501240d320f5942481ed5e6846136b666e1ba4faf802b78ebc875f \
+ --hash=sha256:43bc1ed3fa0716295fabee29ba42b2667e4a51d140b0a68e092170a765474fa6 \
+ --hash=sha256:44673b27010051ab5a5e438a86ec31bbda61d4a77d7e900af6b7be3037c1abae \
+ --hash=sha256:455469a29951edc92bc48b47ac2281c3f2609e6c4f6a047056449f8c2c23facf \
+ --hash=sha256:4713502748f564fee0633b37b3403783ce0a3af3a3d148ad91025a5bdadb7bc6 \
+ --hash=sha256:5276ef17bdba9ad8040575c74072008b13aae429436e9d0429e718bb5f90f4da \
+ --hash=sha256:597a8e843bea00b2eb5520658dc24a9bb032e7fc9e7c2c0c4cd29420220c9796 \
+ --hash=sha256:69bbb92865a693d909db3a700d3c01537533844d0948c1e9323561ce06ecda41 \
+ --hash=sha256:69f365963f63a1e9bff53bdbb3c542c7c2efed3e163c9d5d83a772a2ac468c21 \
+ --hash=sha256:82ca5bf427ad1b216b65ede1a2e2d87dc49bec417ceba0f297213107d3cd9d78 \
+ --hash=sha256:889932a97fb4abb6f95fef1914c0d269ebfb60011e67121c1163059b9449dbb4 \
+ --hash=sha256:905f877dc66dd7aea4a76e54bcb26acb5ff8216f720c0017ccf63e0e6035698e \
+ --hash=sha256:a43ebd7543555c3ac1bc353023d0794e75cb76f6f18f19c32e95441496c0cc25 \
+ --hash=sha256:d14bf7982e7a77c0c775634c29c07ce08b38a046df73e1c1f139b3e82f18a38e \
+ --hash=sha256:e196fa70c2ff2eb4de7d3df3108f8f358c1d69dff20d45b11f20a5aa227ffb6d \
+ --hash=sha256:e1b160831c9cdb06a6c79c2f9cdb11386602938f9af260d1c457a85add4f6f69 \
+ --hash=sha256:e6b7beece07525dc6e6b0fc2f104442de2ba328360ad00e50cbe2e1fd620447d \
+ --hash=sha256:edb2b4a1a27523e6cc7c417f8d21ce3d005243548b93e56b762b66b0c7f589f9 \
+ --hash=sha256:f2f14b7ae1fca99c4a66c981aac3974e7fbc1ca30a12673d223ae1df76680917 \
+ --hash=sha256:f338ac7d594c067679f1e99b4f5ec3906842979560f9d8f15d6bdfa39a353b10 \
+ --hash=sha256:f3736c9dd3d1856f80cd031715b84ca75cda2bbb1ac802c3da26bfce590838d7 \
+ --hash=sha256:f5ed5fe84aee7f39db95c214a7421bf0499fbf500fec6d86a4e29bfc37971438
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
@@ -1311,9 +1311,9 @@ openpyxl==3.1.5 \
# via
# -c src/backend/requirements.txt
# tablib
-opentelemetry-api==1.42.1 \
- --hash=sha256:51a69edacadbc03a8950ace1c4c21099cacc538820ac2c9e36277e78cebba714 \
- --hash=sha256:56c63bea9f77b62856be8c47600474acad853b2924b99b1687c4cb6297166716
+opentelemetry-api==1.43.0 \
+ --hash=sha256:107d0d03857ea8fc7c5fcbbbd83f800c281f0d560553d61c1d675fccfd1761c1 \
+ --hash=sha256:20acf45e9b21851926835292e4045d290acade1edd2ff3de86d2f069687ba1fd
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
@@ -1331,34 +1331,34 @@ opentelemetry-api==1.42.1 \
# opentelemetry-instrumentation-wsgi
# opentelemetry-sdk
# opentelemetry-semantic-conventions
-opentelemetry-exporter-otlp==1.42.1 \
- --hash=sha256:2d9ebaed714377a67d224d46795ddcc11d2c877fa5de35fda70b6f3b010729a9 \
- --hash=sha256:aedd54545bb0587cd45210abdc8be545af9c01413f3307786e276df1e3c83bee
+opentelemetry-exporter-otlp==1.43.0 \
+ --hash=sha256:65aded6c50ee7dd2b9948c9d0e59ddb4ed4eea6e8532fba95cbe6a4a64a566ba \
+ --hash=sha256:70f3fe740a64596d4157588a2ee7e4fd37d2acc0c0f522a2882b8c29316cd0f0
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-opentelemetry-exporter-otlp-proto-common==1.42.1 \
- --hash=sha256:04f1f01fb597c4249dfcd7f8b861c902c2102369d376d9d346ff38de4469a2ee \
- --hash=sha256:f48d395ab815b444da118868977e9798ea354c25737d5cf39578ae894011c140
+opentelemetry-exporter-otlp-proto-common==1.43.0 \
+ --hash=sha256:123c3f9cc87218562490c63b36f497bf3a722faf174a515d1443f31ababa6264 \
+ --hash=sha256:c4e32ba6d6b13bdb2b8f6764c4fd28d00192826561aa04f6d14eedfce7ac076f
# via
# -c src/backend/requirements.txt
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
-opentelemetry-exporter-otlp-proto-grpc==1.42.1 \
- --hash=sha256:0ae1177e2038b18a929b3098215243631ef91136cba26b7e2b12790ceb7e87cc \
- --hash=sha256:975c4461f167dd8ed8857d68d3b6b25f3d272eab896f6a9470d0f5b90e2faf15
+opentelemetry-exporter-otlp-proto-grpc==1.43.0 \
+ --hash=sha256:1b3e0627daa9bc21884d4a13946807c255eb558bfe5bdd543dffb6f4c9faee0d \
+ --hash=sha256:6a10d1feacffffda19acacbf277b736094b1e2f4dbb98c90ccb2c6e1962e2ec6
# via
# -c src/backend/requirements.txt
# opentelemetry-exporter-otlp
-opentelemetry-exporter-otlp-proto-http==1.42.1 \
- --hash=sha256:00a16da1b312a1d6c7233d600d557c91df71125af73020f3b9a7765bd699d59d \
- --hash=sha256:bf142a21035d7571ac3a09cb2e5639f49886f243972883cfe777ed3bf02b734d
+opentelemetry-exporter-otlp-proto-http==1.43.0 \
+ --hash=sha256:647f603aa8efdbdb4dbff842e0729d0406a6fff26b295a72d3d60e7d963b2610 \
+ --hash=sha256:fa8a42bb7d00ee5391f4c0b04d8e6a46c03caa437903296ab73a81dc11ba118f
# via
# -c src/backend/requirements.txt
# opentelemetry-exporter-otlp
-opentelemetry-instrumentation==0.63b1 \
- --hash=sha256:32368d6ae52c8de20aa790a6ad86b10a76f09956092337ae37d675773990e541 \
- --hash=sha256:f1986716d52cc316ea5f60189098726a9071d8ecc0eee96c9ed110be08bade9c
+opentelemetry-instrumentation==0.64b0 \
+ --hash=sha256:133ab7ffca796557aec059bf6be3190a34b6dea987f25be3d9409e230cbdad8b \
+ --hash=sha256:b47d528dead6271d7743114417eb67fc915bd9258111c48dbf9a4951d2efa88d
# via
# -c src/backend/requirements.txt
# opentelemetry-instrumentation-dbapi
@@ -1370,82 +1370,82 @@ opentelemetry-instrumentation==0.63b1 \
# opentelemetry-instrumentation-sqlite3
# opentelemetry-instrumentation-system-metrics
# opentelemetry-instrumentation-wsgi
-opentelemetry-instrumentation-dbapi==0.63b1 \
- --hash=sha256:1bc842ddcacb7ec3622ef306ffdb3c584bf97df79d381e03604ea6eb23c63781 \
- --hash=sha256:406978ed56bcfc5fd246fd918e6b36d0f5de26fa396c78cf63326a7b530597c8
+opentelemetry-instrumentation-dbapi==0.64b0 \
+ --hash=sha256:1caa96d438bf37f71dd778c9f1e03ba1f50b8ab54aeef68b2a630c93c05cddc6 \
+ --hash=sha256:8e3a1528fc9753a04190a7e7bf0180c5abd059f3aa68ec3857edb363c9847c44
# via
# -c src/backend/requirements.txt
# opentelemetry-instrumentation-psycopg
# opentelemetry-instrumentation-pymysql
# opentelemetry-instrumentation-sqlite3
-opentelemetry-instrumentation-django==0.63b1 \
- --hash=sha256:909ea4afbb18f16eb811d7ac330ed0f6fda7765191d49bccb8cca38c4fbc005f \
- --hash=sha256:f2071d2f92e4779c5a14dd452b0dfe426343599e6efa9d888304fb639a9f3101
+opentelemetry-instrumentation-django==0.64b0 \
+ --hash=sha256:3d2673b4f77156b15b1b119c8849b50e3644cfc325f7a24c03602596de2dbba4 \
+ --hash=sha256:c1f628e53c22aa8f9cc9cbe6e61e781940da6eda5f910d26720ef8ac73e25afe
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-opentelemetry-instrumentation-psycopg==0.63b1 \
- --hash=sha256:4d74ec2dda8e54ead9bd71f134af984792f77e1d8809591ae53edadddd4c8fc0 \
- --hash=sha256:86819f4cccea21a47920807826495797b7261cc1893c8e855415e76fb7b8e2e8
+opentelemetry-instrumentation-psycopg==0.64b0 \
+ --hash=sha256:a9835b8749db71a9c1e075ae81c084b1f370130341ceff6a231095f89f48a0c6 \
+ --hash=sha256:e9f41fad425183392d97068dbe2ce6e938514520312cfd7bf409242bd800c013
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-opentelemetry-instrumentation-pymysql==0.63b1 \
- --hash=sha256:2cf6a24e136b5b0c3f6e59675fc44b42ad2b97474b075a82859f9868a9252648 \
- --hash=sha256:6b54b83c86ac6c2e8dae642bbee4894e2283ceb5da23d571f1abb7060f7b62f4
+opentelemetry-instrumentation-pymysql==0.64b0 \
+ --hash=sha256:f5ab8399f7d8952b1622f9938d56604b51f51e7882f5058d7fd4fa3509c458f4 \
+ --hash=sha256:fc0da8eb158e0fb525f18e5be3bfa25dc0bc1d9e195c5fe31fbf919b55bd1a64
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-opentelemetry-instrumentation-redis==0.63b1 \
- --hash=sha256:28d235159df43cc2bc8779af5c602afad1e08603fff75ac8ca34dd1bf30a9cb9 \
- --hash=sha256:f0e51c4006f68e340abbf28a7995feff004de78649697cbdf3bac0072cacd082
+opentelemetry-instrumentation-redis==0.64b0 \
+ --hash=sha256:5458a541986f665b9d7e641421fa5d0c286f1813b452faab6f84503823719d52 \
+ --hash=sha256:c37e194c1e8ff59944d5c2f18014ee18f244a103958b1f2482099525ae9099f9
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-opentelemetry-instrumentation-requests==0.63b1 \
- --hash=sha256:513fcaa3d93debbdb359c00ce1a137a34a89ee908c51ac43beb7e8c18ac2b3cd \
- --hash=sha256:935c980a11e33bfd7ed969c741e4bd7c84077045651469f10e163534368d87f7
+opentelemetry-instrumentation-requests==0.64b0 \
+ --hash=sha256:8213a20b6578c41aa05cc5b48419aea75e1584924a4904dfcf36524597e7cc96 \
+ --hash=sha256:dcad4324ad97d785a5a3b9500acf3af3965b4c1d1b95776fa5e275b173d9541c
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-opentelemetry-instrumentation-sqlite3==0.63b1 \
- --hash=sha256:3d61afda8358dc32135fabd27e5934bd25ea0eed68d64c34508f24ba8d723efc \
- --hash=sha256:cc11c68cccde061dc8bcc5f80fe00bb0105a0fbb11b390859a23ca91ccd4e3b6
+opentelemetry-instrumentation-sqlite3==0.64b0 \
+ --hash=sha256:2d46810db20543a209c6568c8d1220859563bc4135cd6d00461ef70e446a0297 \
+ --hash=sha256:fc73cd28b7c77ddbec1d688113abe944805e9f085ff724729a8b7a4888efc3e7
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-opentelemetry-instrumentation-system-metrics==0.63b1 \
- --hash=sha256:995051f47876d79461aed8b7aa205d4584d90794ef864342cc748929c389bb42 \
- --hash=sha256:d6d4d7a1a854be4165143cf6420ee5894188762eb367d7bf9da5be4a83a4b632
+opentelemetry-instrumentation-system-metrics==0.64b0 \
+ --hash=sha256:38bc9c4ed4fccea2a68b1a43d57764649d1c3096927dc7244c5e7f173899044b \
+ --hash=sha256:ec8280693cdf6ea9020384c3fe884eea64a43ae78f1e2f6edc20951c871aac7e
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-opentelemetry-instrumentation-wsgi==0.63b1 \
- --hash=sha256:03d61c4678ce82402e7f37b6a3dbd84cb97b85b3cb416a78c2e74c7c6d9451fa \
- --hash=sha256:86779715262227d3436bdfb16aabd1c524b0f236725a69e8754ceda76c6d79dc
+opentelemetry-instrumentation-wsgi==0.64b0 \
+ --hash=sha256:1cce6ea28d1800c154e6ccdf52f05bae2f05c5e28ee44f0dddb17ada26208986 \
+ --hash=sha256:5a3b0174f39072c0abb749be4ae7e469c7585e87cdfaf63665657b1a7058c105
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
# opentelemetry-instrumentation-django
-opentelemetry-proto==1.42.1 \
- --hash=sha256:c6a51e6b4f05ae63565f3a113217f3d2bfaec68f78c02d7a6c85f9010d1cfca6 \
- --hash=sha256:dedb74cba2886c59c7789b227a7a670613025a07489040050aedff6e5c0fb43c
+opentelemetry-proto==1.43.0 \
+ --hash=sha256:224778df17e1f3fafeaaa21d874236ca5f6ffc2f86e0899298ec7351aac27924 \
+ --hash=sha256:c58f1f7ef84bc7dc2834016c0c37fe0081dde7ca9f6339be1970fbf9cdaaa90d
# via
# -c src/backend/requirements.txt
# opentelemetry-exporter-otlp-proto-common
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
-opentelemetry-sdk==1.42.1 \
- --hash=sha256:083cd4bbfaa5aa7b5a9e552430d9951219967cfb27aa61feb13a77aba1fc839d \
- --hash=sha256:8c834e8f8c9ba4171d4ec843d0cb8a67e4c7394d3f9e9297e582cbd9456ddbf7
+opentelemetry-sdk==1.43.0 \
+ --hash=sha256:d1323a547c1ce69d6a069a17a44b7da82bb8b332051ecb074041f87642c86823 \
+ --hash=sha256:d8187c81c162df9913e4003dd6485f7390d9a24fc17026ec7387b8b8218b08e9
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
-opentelemetry-semantic-conventions==0.63b1 \
- --hash=sha256:3daf963611334b365e98a57438183eb012d3bfb40b2d931a9af613476b8701a9 \
- --hash=sha256:dfe5ef4dee82586b746f522b818ceb298d00b3d59f660042bd79404bff8d0682
+opentelemetry-semantic-conventions==0.64b0 \
+ --hash=sha256:72f76fb2d1582d9d033dd1fcd84532e961e6ff3d90d24ba6fabc72975a83864c \
+ --hash=sha256:ea77e85e354b8f604ddbe5f3d9135216f982fa4d77e5859ac30f6d8a50505aa6
# via
# -c src/backend/requirements.txt
# opentelemetry-instrumentation
@@ -1456,9 +1456,9 @@ opentelemetry-semantic-conventions==0.63b1 \
# opentelemetry-instrumentation-system-metrics
# opentelemetry-instrumentation-wsgi
# opentelemetry-sdk
-opentelemetry-util-http==0.63b1 \
- --hash=sha256:6284194028c59cd439f8acfe388145069a6127f11dc077e1344a2094adacc3f8 \
- --hash=sha256:ba1268f00922ee522dba2ae38458060f99486e7385a8056985901ca9685adfff
+opentelemetry-util-http==0.64b0 \
+ --hash=sha256:8a86a220dbfc56d736f47f1e5c4e7932a21fcf69052312e1bcf166444dc79322 \
+ --hash=sha256:c1e5350d25507c1afcd6076cf9ac062485a0a4f79cd9971366996fd3056bacdb
# via
# -c src/backend/requirements.txt
# opentelemetry-instrumentation-django
@@ -1607,23 +1607,21 @@ ppf-datamatrix==0.2 \
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-prettytable==3.17.0 \
- --hash=sha256:59f2590776527f3c9e8cf9fe7b66dd215837cca96a9c39567414cbc632e8ddb0 \
- --hash=sha256:aad69b294ddbe3e1f95ef8886a060ed1666a0b83018bbf56295f6f226c43d287
+prettytable==3.18.0 \
+ --hash=sha256:439217116152244369caf3d9f1caf2f9fe29b03bd79e88d2928c8e718c95d680 \
+ --hash=sha256:b3346e0e6f79180833aebaac088ae926340586cf6d7d991b9eb125b65f72313a
# via
# -c src/backend/requirements.txt
# pip-licenses
-protobuf==6.33.6 \
- --hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \
- --hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \
- --hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \
- --hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \
- --hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \
- --hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \
- --hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \
- --hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \
- --hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \
- --hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf
+protobuf==7.35.1 \
+ --hash=sha256:11d6b0ec246892d85215b0a13ca6e0233cf5284b68f0ac02646427f4ff88a799 \
+ --hash=sha256:230a75ddfc2de4806e56696ce9640c1cdfdb6543b7cfce98d42a4c0a0e7bdb87 \
+ --hash=sha256:24f857477359a85c0c235261b8ba905fd51b2562f4a64ca1df5473f29850cbf6 \
+ --hash=sha256:353652e4efd0bca5b5fc2656abf8307ef351f0cf938c9eba09f0e09c20a25c30 \
+ --hash=sha256:4bc97768d8fe4ad6743c8a19403e314511ed9f6d13205b687e52421c023ac1b9 \
+ --hash=sha256:74758715c53d7158fb76caf4f0cfdacc5329a4b1bb994f865d6cf302d413a1c4 \
+ --hash=sha256:b73f9489a4b8b1c9cb1f8ed951c736392592edb24b9d6819f36d2e10b171d5b4 \
+ --hash=sha256:ce115a26fe0c39a2c29973d914d327e516a6455464489fe3cd1e51a1b354f81a
# via
# -c src/backend/requirements.txt
# googleapis-common-protos
@@ -1707,9 +1705,9 @@ pynacl==1.6.2 \
# via
# -c src/backend/requirements.txt
# paramiko
-pypdf==6.13.3 \
- --hash=sha256:c6e3f86afb625791510b02ad5480e94b63970bb957df75d44657c282ecc52224 \
- --hash=sha256:f3cb822769725f1bac658c406cfc9460399043f3750c2d3e4650e0a85eacabd7
+pypdf==6.14.2 \
+ --hash=sha256:3f07891af76dc002657e04993ab9b4de81de29f9013b9761d0b7968bff12e946 \
+ --hash=sha256:7873f502fe4385e79539b21d872392dc0c4e3714327c15881cbc7fbfd1f95b25
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
@@ -1937,9 +1935,9 @@ rapidfuzz==3.14.5 \
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-redis==8.0.0 \
- --hash=sha256:a00c5355432051ac14e593b8b197fc76c887ee12d55a0984f69328a1115fdc49 \
- --hash=sha256:c938c18338585009f0bc310f4c7e4e4b4d37639356c4ac072cedf3af570c8dc7
+redis==8.0.1 \
+ --hash=sha256:47daa35a058c23468d6437f17a8c76882cb316b838ef763036af99b96cedd743 \
+ --hash=sha256:afc5a7a2f5a084f5b1880dec548dd45be17db7e43c82a30d84f952aefb05cfb0
# via
# -c src/backend/requirements.txt
# django-redis
@@ -2229,97 +2227,97 @@ whitenoise==6.12.0 \
# via
# -c src/backend/requirements.txt
# -r src/backend/requirements.in
-wrapt==2.2.1 \
- --hash=sha256:036dfb40128819a751c6f451c6b9c10172c49e4c401aebcdb8ecf2aec1683598 \
- --hash=sha256:03df9ebed4c73ab93fa8c07e3d41d818dfca1852b15731a3de59457b27814624 \
- --hash=sha256:05d5cb74d1b232ec8cfa130a8f900708699ff2491d97b8f85a4cdc5996294b85 \
- --hash=sha256:07be671fa8875971222b0ba9059ed8b4dc738631122feba17c93aa36b4213e9a \
- --hash=sha256:09ac16c081bebfd15d8e4dfa5bdc805990bbd52249ecff22530da7a129d6120b \
- --hash=sha256:0d9ff006f420b2ec8296aa56ade43ea7da3e997e85769f0aafc5e0661aacb710 \
- --hash=sha256:0f68f478004475d97906686e702ddbddeaf717c0b68ad2794384308f2dc713ae \
- --hash=sha256:17de18fc12cea55b8a9587314cb830573e37fb33b247a7515696350863714188 \
- --hash=sha256:1ae574d65c9fa8e86f64f6a7c2668f9fcd507b183e0e577619f504b883cb0a6c \
- --hash=sha256:1c9934ea5d92957e3cd0adbc0845539dccfd62710ebe16195a8c66c53954db36 \
- --hash=sha256:1d676ee388bc42a04d56dd7deb5605244dac2e35cc2fadbb43c9fa25bbd93508 \
- --hash=sha256:1ffa9cfd4bdb581539951b14ae661ff20ed0c3599b3e911a131ee0ec5ac11337 \
- --hash=sha256:2076d2335085eb09b9547e7688656fa8f5cf0183eab589d33499cd353489d797 \
- --hash=sha256:211f595f8e7faae5c5930fcc64708f2ba36849e0ba0fd653a843de9fa8d7db77 \
- --hash=sha256:24c52546acf2ab82412f2ab6fc5948a7fe958d3b4f070202e8dcdd865489eaf9 \
- --hash=sha256:2d83966dc7f4f45e8b97b5933685ac2e6e67fc0e19246ea314bceb9a8970c956 \
- --hash=sha256:2de9e20769fe9c1f6dcdc893c6a89287c5ccf8537c90b5de78aed8017697aad5 \
- --hash=sha256:2e08688ab16525897da6589d56d0aebaf417bbe91c2d8e3b96203b1efa596e85 \
- --hash=sha256:2f8c90c8afde51969487be4e1343ae049b268854877d415c2510baf833775052 \
- --hash=sha256:368eac1e20fd0bb03dd3cc42bf9887154c3861b60989389ccb5fac032617d215 \
- --hash=sha256:3aafea2975caef8ca49400640dde02cc7426e798f24870ed01f490bc3cffd32f \
- --hash=sha256:3e2f02472a1cbbf3884b365714a810b5947134a95ad6952b554cb8cce9d492b0 \
- --hash=sha256:3ffad790d9d11d8ecf9f17c4bb671a5b4089e4d8b575c46c5129597f41f836b0 \
- --hash=sha256:401229e9d63ca09f9b8891ecf83798d26c11bbb445d11ed9f1836b6d4585b38a \
- --hash=sha256:436addbc4bb4fc0a88c702577f51195d7d73683a7f3e0e5b253d8404d7847243 \
- --hash=sha256:44255c84bc57554fed822e83e70036b51afa9edb56fc7ca56c54410ece7898c9 \
- --hash=sha256:50972a1d974ea07725a7f6b1cec5f8759008afd030a0024843ebe7d52de47f2b \
- --hash=sha256:5590d63f5243251641cf543009b4c9314a79d0598fdb8a8e4cfc918494536c53 \
- --hash=sha256:585916e210db57b23543342c2f298e42331b617fd0c934caf5c64df44de8640e \
- --hash=sha256:5f1845c2a8cc1180ccccfa45785dd06f562730d19ef75be180334254012b6283 \
- --hash=sha256:5fa9bf3b9e66336589d03f42abce2da1055ad5c69b0c2b764852a8471c9b9114 \
- --hash=sha256:61a0013344674d2b648bc6e6fe9828dd4fc1d3b4eb7523809792f8cb952e2f16 \
- --hash=sha256:61acce4257a9883669703c525447c5b4c392edf0f987ae77ec32668440158f0e \
- --hash=sha256:628f5220c7a904d5fc78f7075c8d7871433eb6d035c94728a22fdf85f193d2a8 \
- --hash=sha256:64b7deeda4b70408e382328d8bbe52a256fe9bc63ae3db86d804608367e5422c \
- --hash=sha256:6744f504375775d7609c82c8d3d94af1c9a6f05586984536905908ba905277b9 \
- --hash=sha256:67a97e5b6c457f0cd3cfc19ebb2d84463e60c3ece754cc831e4281a3ca29bb18 \
- --hash=sha256:69f2e9244542cb34dd59c7f073445b9e54ad9f3fce8d93606c368a1b499fc413 \
- --hash=sha256:6ce32763ac31ce94fe9aada947e479b1975012bff166da409b4b9e4e376cf7e5 \
- --hash=sha256:6f56a647e4eaf5f0ca40330fb070f566bdf9f7b0db89a1af20d71c28dcd7a0ab \
- --hash=sha256:727ab4244622cd6ad2390f322642090c877d2e83a608d2653a7643ae5368d926 \
- --hash=sha256:74d6a0c31472fe5d814917266b9f46495d7c61ed890af08b468acea92fb89a8d \
- --hash=sha256:78b0aa6bfb7be8deed0ab23e7aa028cc5210c29bc2d32a04d52b50e517a7307e \
- --hash=sha256:7975bc88ab4b0f72ef2a2d5ae9d77d87efb5ef95e8f8046242fa9afdaaf2030b \
- --hash=sha256:7a4fdb9326aab4a5a477a1640e5ad786a8495901009d7e7b038371edd23a9d2b \
- --hash=sha256:844c858fc3bb7eacc0ba8efa904935d16aac6a4470948ad1e7e55c9f5a2a665f \
- --hash=sha256:87bacdaf225117a342a20d9c03438d701c02112f6e3f351ce9b7f32354f14797 \
- --hash=sha256:8a983a603a18c8708f024f7f6991b2e66159219abbf894634c5056243c55f3cd \
- --hash=sha256:8d1b4d0e0c2119587a31f5c029abd547e0c81d93b89d394566fe1588659eb579 \
- --hash=sha256:9011395be8db1827d106c6449b4bb6dd17e331ff6ec521f227e4588f1c78e46f \
- --hash=sha256:93fc2bf40cd7f4a0256010dce073d44eeb4a351b9bca94d0477ce2b6e62532b3 \
- --hash=sha256:95821352042722cd9f1108874579a47989d0a7e12a37d87d2fc4af20fd99ab8a \
- --hash=sha256:9907a4402ab6db12b7077a0ea5d7a4d028ecb22c8eee2b53527080d347cd1562 \
- --hash=sha256:9a04c28c10ba7fd12842b109d2edb0678872a2fe65277ca4ff06a0d61edee245 \
- --hash=sha256:9a5934eaea872e17936b5f45501eba5ab0bce9a74122e172b663d7c28c459c4a \
- --hash=sha256:9b984d1eb252145d6302c1dbd5e87fc6d404d45531447c84eadec04bf1fcb027 \
- --hash=sha256:9c210a6994b21aa9b29e81c8d11560e8fdab54c117e9cff37870d0a27bde1343 \
- --hash=sha256:9d8f204c8e3a8bf9ece17e0a83d137fd807440977f8a5e762d59306795011440 \
- --hash=sha256:a8f7176b83664af44567e9cc06e0d3827823fcc1a5e52307ebb8ac3aa95860b9 \
- --hash=sha256:a9dec1aca52dddde7df94818310fa2fe79739c8f385b2014c4cb1035f5508199 \
- --hash=sha256:ab5be648d5a0b86b7438864f8df3c705a65cef35a2fd3e5561e3e203167e0f27 \
- --hash=sha256:abd621552ede77c4c69be7fac44ba911225b0c812b6ba604e5964cf98085b474 \
- --hash=sha256:ac2745950b2bff80219c15ebf2fa9d8427eba7e249739f97e55c9d169e47e9e1 \
- --hash=sha256:aed9658797d0b45d6c49adcfc6b41f66e6f2d0c6de3ec79e16cf4b1855df240f \
- --hash=sha256:b6c0febfe38f22df2eb565c0ce8a092bb80411e56861ca382c443da83105423f \
- --hash=sha256:b9cf53ba90717db2e292401de290776c498d4bbfb0d4a559ca2895db8b9dcb5c \
- --hash=sha256:ba519b2d765df9871a25879e6f7fa78948ea59a2a31f9c1a257e34b651994afc \
- --hash=sha256:c318a64b53d97b841d7b5e637517e50a27be64bc695128422953d4b21710954e \
- --hash=sha256:c3723ff8eb8721f4daac98bc0256f15158e05316d5e52648ce9cebee434fbdd5 \
- --hash=sha256:c754dafdf5aaf0b401b644a90a30046929a0dd1a536e0ff0ec959a59155d9c7f \
- --hash=sha256:c803a3d331796255af51ba2c79ed0ac8275865b516c09e61f248d1e7aff31ce9 \
- --hash=sha256:c8cc5094b08abeae52da9c73c8a32003623be691a5193df2f4e3eac3d557c394 \
- --hash=sha256:cf3638274ab9d9b724c9baa0b4c04e132cd6faefb78b4dd3dd1a02a4bdaad41e \
- --hash=sha256:d047f6498c973874ba08ac3f97c69a2c4b2211c8de6f4c205f75cb1c9522596e \
- --hash=sha256:d2beb1c7cab10603aecdc42f8edd6ff013f9a32e4543474e38e6b77ce9975aeb \
- --hash=sha256:d7f513d3185e6fec82d0c3518f2e6365d8b4e49f5f45f29640d5162d56a23b54 \
- --hash=sha256:dd57607acc85678925940bd5df0385ff8332083a32fa8d7a43f8767f4997263c \
- --hash=sha256:e0cb7e4dd71f4c32e5e84843cd3c4cd65dda034314004bbe1d7f99af2426ab80 \
- --hash=sha256:e3677c7146ce694874941ba82b57092cc4875445aadf29d72807351023105143 \
- --hash=sha256:e395f7bc31851ef9b612050368cb446e9bc14cd7454b025018980349caf25ae5 \
- --hash=sha256:e422b2d647a65d6b080cad5accd09055d3809bdff00c76fba8dca00ca935572a \
- --hash=sha256:ed55af48b3eb28f43228ca2306788892bcb629eb2b5c4876e2a3659872c2f17a \
- --hash=sha256:ed928d0fda15fc0adc8d13305c8b3c0f2fba5b0669950c9e6d019d9162a3b3e8 \
- --hash=sha256:f4e1a92032a39cd5e3c647ca57dbf33b6a1938fd975623175793f9dbb63236de \
- --hash=sha256:f53ac9f3ef573326d009ed809beff4efcac6451931c2b8132586da4b9e53ff31 \
- --hash=sha256:f5b9daf6b629fce418e0cc3dd0436eac045188fa35deadb7a7f3941d5b8203f9 \
- --hash=sha256:f6518b94edb9150452e9aba08027d4cc293433753ec1fbefb4629a21cbc74181 \
- --hash=sha256:f70db64e8266d7c45d3b735f2e08eeb434b5e03da9a479ae42b2e2e486a21a00 \
- --hash=sha256:fafb4e739e43544d12cb4abd1605fd4683b6ca6a9ad682b7fd8f4d21973eafa8 \
- --hash=sha256:fd0135d34387f5fd087d9be368ea77ea89cf2451dc1cd1c622d35021bcb3ab50
+wrapt==2.2.2 \
+ --hash=sha256:0065a3b657cec06813b4241d2462ccec287f6863103d7445b725fb3a889736f9 \
+ --hash=sha256:055e6fcfaa28e58c6a8c247d48b92be9d56f818b7068aa4f22b15b3343a09931 \
+ --hash=sha256:0788e321027c999bf221b667bd4a54aaefd1a36283749a860ac3eb77daed0302 \
+ --hash=sha256:07fdcb012821859168641acf68afad61ef9783cf37100af85f152550e9677194 \
+ --hash=sha256:09f811d43f6f33ec7515f0be76b159569f4057ab54d3e079c3204dddb90afa2a \
+ --hash=sha256:0abfd648dac9ac9c5b3aa9b523d27f1789046640b58dcd5652a720ddb325e1fc \
+ --hash=sha256:0ad520e6daa9bbf136f14de735474dbec7dcc0891f718e1d274ce8dc92e645af \
+ --hash=sha256:0e64826f920c42d9d9f87e8cc09ffae66c51ede12d59061a5a426deb9aa71745 \
+ --hash=sha256:0e7070c7472582e31af3dfc2622b2381a0df7435110a9388ed8db5ffbce67efb \
+ --hash=sha256:10adb01371408c6de504a6658b9886480f1a4919a83752748a387a504a21df79 \
+ --hash=sha256:11d95fc2fbad3163596c39d440e6f21ca9fccece74b56e30a37ac2fca786a07c \
+ --hash=sha256:173e5bb5ca350a6e0abab60b7ec7cdd7992a814cb14b4de670a28f067f105663 \
+ --hash=sha256:1fc7691f070220215cccb2a20836b9adbaecb8ff22ad47abe63de5f110994fac \
+ --hash=sha256:209112cafd963710a05d199aae431d79a28bc76eb8e6d1bbbb8ad24340722cae \
+ --hash=sha256:2252f77663651b89255895f58cc6ac08fcb206d4371813e5af61bb62d4f7689c \
+ --hash=sha256:25904acb9475f46c24fe0423dbc8fda8cc5fbc282ab3dc6e72e919748c53f4e9 \
+ --hash=sha256:26fc73a1b15e0946d2942b9a4426d162b51676338327dc067ccd8d2d76385f94 \
+ --hash=sha256:2cb07f414fab25dbe6b5c7398e1491423a5c81a6209533639969a6c928d474a4 \
+ --hash=sha256:2cd7181ab1c31192ff5219269830744b5a62020b3a6d433588c4f1c95b8f8bff \
+ --hash=sha256:2e096c9d39a59b35b63c9aacfbbbec2088ff51ff1fc31051acc60a07f42f273a \
+ --hash=sha256:305d4c247d61c4115794a169141823c62f719525ddb90b23aa332741c77d2c28 \
+ --hash=sha256:30f7424af5c5c345b7f26490e097f74a2ef45b3d08b664dc33571aee3bd3b56c \
+ --hash=sha256:3179a4db066b53d40562e368b12895440c8f0953b6543b89d6acc41c0273996e \
+ --hash=sha256:3442eee2a5798f9b451f1b2cd7518ce8b7e28a2a364696c414460a0e295c012a \
+ --hash=sha256:385cb1866f20479e83299af585375bfa0a4b0c6c9907a981483ea782ea8ae406 \
+ --hash=sha256:3a4eb7964ff4643d333c84f880bcf554652b2a1050aebc54ae696327f61acfaf \
+ --hash=sha256:3b686cfc008776a3952d6213cb296ed7f45d782a8453936406faa89eac0835ab \
+ --hash=sha256:3c4095803491f6ef72128914c28ec05bbad9758433bb35f6715a3e9c8e46fb2d \
+ --hash=sha256:3dc3dcfc2da95d501905f10dc11a0dc622e91d8cdd8bbfcb63ca54afd131e556 \
+ --hash=sha256:4250b43d1a129d947e083c4dc6baf333c9bb34edd26f912d5b0457841fc858ab \
+ --hash=sha256:4402f57c5f0d0579599858ffbdd9bf4e3f0972f51096f2bd6cc7dab6b76ee49e \
+ --hash=sha256:45c2f2768e790c9f8db90f239ef23a2af8e7570f25a35619ef902df4a738447f \
+ --hash=sha256:4b481fb0c40d9fd90a5809911208da700987d373a20a4709dc9e3944af7a6bec \
+ --hash=sha256:4bccea5cdecffa9dd70e343741f0e41e0a16619313d04b72f78bb525162ebcd0 \
+ --hash=sha256:518b0c5e323511ec56a38894802ddd5e1222626484e68efe63f201854ad788e5 \
+ --hash=sha256:5499236ad1dc116012e2a5dd943f3f31af12fce452128e2bbcbd55a7d3d4d14c \
+ --hash=sha256:55b9a899e6fff5444f229d30aa6e9ac92d2216d9d60f33c771b5d76a760d5f8e \
+ --hash=sha256:58f9f8d637c9a6e245c6ef5b109b67ec187d2faed23d1405656b51d96e0a5b56 \
+ --hash=sha256:5bad217350f19ce99ca5b5e71d406765ea86fe541628426772b657375ee1c048 \
+ --hash=sha256:5d0a142f7af07caeb5e5da87493162a7b8efa19ba919e550a746f7446e13fb30 \
+ --hash=sha256:62415fd095bc590b842b6d092f2b5d9ccbaeb7e0b28535c03dcea2718b48636b \
+ --hash=sha256:656593bb3f5529f03d27af4136c4d7b11990e470bcbc6fefa5ef218695bece55 \
+ --hash=sha256:6c99012a22f735a85eed7c4b86a3e99c30fdd57d9e115b2b45f796264b58d0bf \
+ --hash=sha256:6d1a6050405bf334be33bf66296f113563622972a34900ae6fa60fd283a1a900 \
+ --hash=sha256:6e7e45b43d3c774d244fe7264378f5a3f0f383bc55a54a9866434e524540110f \
+ --hash=sha256:6fe35fd51b74867d8b80174c277bd6bbf6a73e443f908129dc531c4b688a20d5 \
+ --hash=sha256:7d2f6573561fa05002e5ee71529f4ab0a7dffed3e45b51013fe6298fe2723c02 \
+ --hash=sha256:814f1bf3e0a7035f67a1db0cdaf5e2bbcaa4d7092db96673cfa467adeaab8591 \
+ --hash=sha256:8374eb6b1a58809211e84ff835a182bb17ab2807a5bfef23204c8cff38178a00 \
+ --hash=sha256:8417fd3c674d3c8023d080292d29301531a12daf8bd938dd419710dd2f464f2b \
+ --hash=sha256:8636809939152be6ae20a6cef0fed9fe60f411b47847d0426a826884b469e971 \
+ --hash=sha256:8ffbeaea6771a6eba6e6eeb09767864995726bc8240bb54baf88a9bb1db34d5c \
+ --hash=sha256:94b00b00f806eb3ef2abe9049ed45994a81ee9284884d96e6b8314927c6cea3d \
+ --hash=sha256:955f1d6e72a352e478de8d8b503abe301c5e139a141b62eb0923bd694995025f \
+ --hash=sha256:9e8b648270c613720a202d9a45ebabc33261b22c3a839b115ac5bce8c0bb0d69 \
+ --hash=sha256:9ee098171b07edba66ab69a9bf0251d3cbef654107e800feb24c0c6f30592728 \
+ --hash=sha256:a28287413351cb198b8c5ddd045c56fac1d195808642cd264d1ab50426146650 \
+ --hash=sha256:a2d78c363f97d8bd718ee40432c66395685e9e98528ccaa423c3355d1715a26d \
+ --hash=sha256:a41e758d80dc0ab8c210f641ac892009d356cf1f955d97db544c8dd317b4d14c \
+ --hash=sha256:a795d3c06e5fbf9ea2f13196180b77aeab1b4685917256ee0d014cc163d90063 \
+ --hash=sha256:aa14b01804bce36c6d63d7b6a4f55df390f29f8648cc13a1f40b166f4d54680d \
+ --hash=sha256:abf033b7e4542357659cd83ed6cd5033c43aaa1887044045ceb571528837f72f \
+ --hash=sha256:abf8c20a2d72ee69e16328b3c91342c446e723bfe48bfcc4dded3b9722ac027f \
+ --hash=sha256:b84cd4058001c9727b0e9980b7a9e66325b5ca748b1b578e822cade1bc6b304f \
+ --hash=sha256:b89d8d73c82db2bb7e6090b3afd7973f980d24e905cc34394eab60b884b3bf67 \
+ --hash=sha256:bbf00ee0cb55ec24e2b0995a71942b85b21a066db8f3f46e1dbfdb9433ffba81 \
+ --hash=sha256:c20279cd1a29800815d7b2d6338b60a6c6e78263f9d6e62e0eda251ba9cae2d0 \
+ --hash=sha256:c38510a21d5b9cf3e84c460d909e9f2a098667439fd42841bb081cab45835d68 \
+ --hash=sha256:c427c9d06d859848a69f0d928fe28b5c33a941b2265d10a0e1f15cd244f1ee33 \
+ --hash=sha256:c5d7825491bfa2d08b97e9557768987952c7b9ae687d06c3320b40a37ccb7f20 \
+ --hash=sha256:c6c64c5d02578bc4c4bca4f0aef1504de933c1d5b4ac2710b9131111459506c8 \
+ --hash=sha256:cd385a48b055bdc3630ab30e0c7fd8514a36904ec23f9cee7a65d887334a3cea \
+ --hash=sha256:d01d8e0afc55823245a3b97a79c7c77464e31ea7a7b629a4bf26f9441dc1f18e \
+ --hash=sha256:d09db0f7e8357060d3c38fc22a018aba683a796bf184360fd1a58f6fc180dc77 \
+ --hash=sha256:d619e1eed9bd4f6ed9f24cd61971aa086fa86505289628d464bcf8a2c2e3f328 \
+ --hash=sha256:d8a15813215f33fa83667bfc978b300e35669ea8bb424e970a1426bcb7bc6cca \
+ --hash=sha256:dcaa5e1451bd8751d7bd1568dfa3321c78092a52a7ecb5d1a0f18a5791e1fd00 \
+ --hash=sha256:dfb00cb7bb22099e2f64b7340fb96113639aa7260c0972af3797ace2297b936c \
+ --hash=sha256:e542b7c5af91e2123a8aabf19894319d5ec4268d2a9ffd2f239386133fc47746 \
+ --hash=sha256:e5a5290e4bf2f332fc29ce72ffb9a2fff678aaac047e2e9f5f7165cd7792e099 \
+ --hash=sha256:e6fb7e94e8fe3e4c3067bb1653a91cce7c5e83acc119fdd41501b1bf74654617 \
+ --hash=sha256:e7f10ee0bd53673bfd52b67cbce83336fe6cad90d2377b03baf66491d2bbfb91 \
+ --hash=sha256:ec8f83949028366531383603139403cac7a826e4011955813cdd640017845ce5 \
+ --hash=sha256:ef2cce266b5b0b07e19fa82e59673b81142b7a3607c8ed1254113d048ed668da \
+ --hash=sha256:f1a2ff355ece6a111ca7a20dc86df6659c9205d3fcee674ca34f2a2854fd4e73 \
+ --hash=sha256:f32fe639c39561ccc187bcae17e9271be0eb45f1c2952510d2f29b33ab577347 \
+ --hash=sha256:f4bfd8d1eb438153eff8b8cfe87f032ba65731e1ce06138b5090f745a33f6f95 \
+ --hash=sha256:f90038ab58fafb584801ca62d72384d7d5225d93c76f7b773c22fae545bd8066 \
+ --hash=sha256:fa81c5b5fe8cd6c41e3a798533b81288279e5fdbde2128f21071922764281c99 \
+ --hash=sha256:fb18fc51e813df0d9c98049e3bf2298a5495a648602040e21fa3c7329371159e
# via
# -c src/backend/requirements.txt
# opentelemetry-instrumentation
@@ -2395,7 +2393,6 @@ xmlsec==1.3.17 \
--hash=sha256:f3fac9ae679f66585925cc00c5f6839ae36c1d03157619571dee18acc05b9c01
# via
# -c src/backend/requirements.txt
- # -r src/backend/requirements.in
# python3-saml
zopfli==0.4.3 \
--hash=sha256:0087c9a6f0c8a052be0f6d1a9bb71b6caffdd3e10201d6d6166e28d482cebe6d \
diff --git a/src/backend/requirements-dev-3.14.txt b/src/backend/requirements-dev-3.14.txt
index 93889781ee..e238f1978e 100644
--- a/src/backend/requirements-dev-3.14.txt
+++ b/src/backend/requirements-dev-3.14.txt
@@ -1,21 +1,25 @@
# This file was autogenerated by uv via the following command:
-# uv pip compile src/backend/requirements-dev.in -o src/backend/requirements-dev-3.14.txt -c src/backend/requirements-3.14.txt --python-version=3.14 -c src/backend/requirements.txt
+# uv pip compile src/backend/requirements-dev.in -o src/backend/requirements-dev-3.14.txt -c src/backend/requirements-3.14.txt --python-version=3.14 -c src/backend/requirements.txt -c src/backend/requirements-dev.txt
asgiref==3.11.1 \
--hash=sha256:5f184dc43b7e763efe848065441eac62229c9f7b0475f41f80e207a114eda4ce \
--hash=sha256:e8667a091e69529631969fd45dc268fa79b99c92c5fcdda727757e52146ec133
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# django
build==1.5.0 \
--hash=sha256:13f3eecb844759ab66efec90ca17639bbf14dc06cb2fdf37a9010322d9c50a6f \
--hash=sha256:302c22c3ba2a0fd5f3911918651341ebb3896176cbdec15bd421f80b1afc7647
- # via pip-tools
+ # via
+ # -c src/backend/requirements-dev.txt
+ # pip-tools
certifi==2026.6.17 \
--hash=sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432 \
--hash=sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# requests
cffi==2.0.0 \
@@ -105,6 +109,7 @@ cffi==2.0.0 \
--hash=sha256:fe562eb1a64e67dd297ccc4f5addea2501664954f2692b69a76449ec7913ecbf
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# cryptography
charset-normalizer==3.4.7 \
@@ -239,121 +244,111 @@ charset-normalizer==3.4.7 \
--hash=sha256:fea24543955a6a729c45a73fe90e08c743f0b3334bbf3201e6c4bc1b0c7fa464
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# pdfminer-six
# requests
-click==8.4.1 \
- --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \
- --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96
- # via pip-tools
-coverage[toml]==7.14.1 \
- --hash=sha256:0177614a0370f227888b4e436a7c55686d6a9f90eb1ade2b624ba685a1686e86 \
- --hash=sha256:01b7733daad0237daa01ef80fe2dfceffc911e6a17fa7b55d14aa8214eaaaecd \
- --hash=sha256:03a6f93c1ec3b7f2e77b5dbcc5573a2c21f12529a5c6bbe0f16f72303cc2fa4d \
- --hash=sha256:042c46ded7c288aeb07cf14a28b6c1e10b78fcba40171c3fa1e939377eeef0b5 \
- --hash=sha256:06144cd511cf2624873a035c5069cf297144f6e77a73ee3d7a55b605ec5efb42 \
- --hash=sha256:07c6290b1697b862c0478eab545eec949a0d0e4d6d03497f446d706da3b4f2de \
- --hash=sha256:10274a1fbeb8ec5d72966e17bb198a3104257aca4ac09d98667c5f8aca8c8548 \
- --hash=sha256:1101a5ebb083aecb625ebb6209d4105b58f647b093cb2dc8122d7b33f743cfe1 \
- --hash=sha256:114c95ef29302423b87d159075805f4ab973254a2638a5d7d046c94887cc87d7 \
- --hash=sha256:1238cb94638e610e972c60dac68e813f868dc7d6e982535270558443058d9d59 \
- --hash=sha256:12c42ec1e14f553c4f817e989365982e646e27211f10a0f717855b94a79c8906 \
- --hash=sha256:145986fe66647eb489f18d9a997567a3fd358584c4b5a808769113abc07466af \
- --hash=sha256:17a5a241e5997621a956a7f402a7433ef4221e5152809b785bec79e2323799f1 \
- --hash=sha256:1896f5e19ff3f0431c7ce2172adc54890fd97f86b59ced8ca1649145d9ffe35d \
- --hash=sha256:196a13319ad88d6d8ef5ab489ec4f44ddde2143c0c7d5b27786f6c3ffd56a7e1 \
- --hash=sha256:221c70f316241a78e77e607c227cefc8808d4e08f28d99c04f35694690e940be \
- --hash=sha256:2222be86d0b54f5dd5a38f45f17f315f737245e857bf0bdedc70734f84a13c02 \
- --hash=sha256:2224f89ffd0c5605ccce1ed7a584da162bc7c55f601ab1c946bc9de31a486b42 \
- --hash=sha256:23bf7fa51ac02e07fc7c96849b82946da47ae862dc8f86d183b2a4864fc38129 \
- --hash=sha256:2d69af5dea2de76fc485a83032a630523f985198b7e25be901ec60181587b01e \
- --hash=sha256:30c08f7d90415aa98b3c990385dea2939b0da55f38515e5b369b83655f8523be \
- --hash=sha256:357d4e32935c36588aaba057d734fa32428c360c9fc2e4442afbf1b646beee6e \
- --hash=sha256:35ab22d91de736e8966b980dc355cbcdd2c6dbbcfe275f9a2991bc8a91b3df65 \
- --hash=sha256:370c5afae3fa0658e11694a32b24c2778f6bc2d17718121f94ee185e69f26b54 \
- --hash=sha256:3758dd0a7f1fa57365ef2e781df0f0731d38b6e3772259d13dae4bd8a958d4b1 \
- --hash=sha256:39b21e212c55af06fa375e3dbf90a8a8e38792f3a910c580066d23563830ddd5 \
- --hash=sha256:3a56abc20a472baf0304c455721bc601477440d28ecfde8a03dde79ede07e0df \
- --hash=sha256:3c18ebc343e15be53049b3a2dce38fe82d58f37e20ab9094b3a39c0aa4f6bb47 \
- --hash=sha256:3d452fd08b5c72c5167c93e6867b5c08500bd40f2a21e1e854a500550b6cc36f \
- --hash=sha256:3e3680291c4a1d0dadfa84a2c459576a4af5133abb617905714339a0c73138cf \
- --hash=sha256:442cc9c952b2df400cda54bb04ab87330cf2cd08a8692cbbea36773531eb6f37 \
- --hash=sha256:46f714d2fb8ae2f4f29f23ada7f1e79b759fff5a70f94a1dac23af204c3ec9e4 \
- --hash=sha256:478b5bcd63c2e1357c5c7e16c070690df7b07f676b1c114d7b93e533c664309f \
- --hash=sha256:48b283b1dd6372e8de2a7a9a4c4d5dc06f4d4fd209b876f3c88a7a205a0c8f84 \
- --hash=sha256:4a28fd227808366b196a75476dced2eb35b351d6766ba9c858dc93319e87f4f1 \
- --hash=sha256:4ea1c034f95c9b056e856b794630b17f9fa3d57e4800ff1e503d3be0f9c9078c \
- --hash=sha256:51bd64741cc6fa065abd300ede1afe5a5291ece9c31da8b24884deda48bcc3f8 \
- --hash=sha256:54acdb6674a4661768d7bf7db32dfb9f46ab1d764f8aba6df75ce1a6a088724e \
- --hash=sha256:59baf88468dbc8d63b1887afd92bda52e40bb1561696e5819670601403810cec \
- --hash=sha256:5a1c5215be81035e629d5bc756650634d0bf31991038db7a0eccb90f025ce16d \
- --hash=sha256:5b0c99ba93a07d56f6df340bb79be53202a082b2fdb81bfe6190b741a3470d54 \
- --hash=sha256:5ea0c297e27133853b4d8a3eb799bff5a2dbd9f2f41537a240d337ac9b4df890 \
- --hash=sha256:5f0cfc27c539f07cf5c0a4cfe211d0b6cae039f8f40526dbaa71944e64b50a7b \
- --hash=sha256:6223a72fd0e4c7156353ec0f08a5f93623e1d3034d0e2683b9bb8ea674131b1d \
- --hash=sha256:62a9f70b52e0b5a95cfef4a5c5641b06983cadc5e538a3feeb5c00211f523ac2 \
- --hash=sha256:62fd185ef9df3c33d1c8178c5af105f762afbad96038de9a4ae100aa6297ca33 \
- --hash=sha256:6a3cb83d1552c0cd1b4906655b6a33fd4a8473229633a901c6b73bf86914dee9 \
- --hash=sha256:6adc5a36984624a70bf11d7184e20fa0a49aa7c47ffab43804106a1a695ea22e \
- --hash=sha256:6b6b0853b895fe0e98cbfc580d1ec3393d9302b4b1e96a77b3f5c91fdab899e6 \
- --hash=sha256:6ff665fb023a77386fe11685190cee1f60a7d635994a30d9b0a061533d470fce \
- --hash=sha256:7279d2110a28cebc738b6459ecda2771735a4c18465fbbd36b3288fe5ed92247 \
- --hash=sha256:76a085d7005236a767e3426148b2c407e53ad61695c562f8a81da2d373324901 \
- --hash=sha256:7771b601718fdde84832c3a434ca9bbf4ae9adbc49d84198b4110700c3c77c36 \
- --hash=sha256:79058c47dae6788504b5effb319961bcd72d7240551464b91d474bc0ed186d69 \
- --hash=sha256:7af486dabe8954d03b087f0021540897afe084f04e16ff5579e08cc46f871416 \
- --hash=sha256:7f02d09f70776579b926d889a4c9c235070a1f47c40458aeaca563fae5acfdb5 \
- --hash=sha256:8011224a62280e50dab346960c03cf47aca1a1e09e608c0fb33fd6e0cc8e9500 \
- --hash=sha256:8270544c361ed405a27a060dbc9ed2c124b084d96dfdc2d9a2510482aef981ad \
- --hash=sha256:84ac9499e48700399a5dd0ea7085b5091961fec52c68d66b4ec0d3cf7f4441b1 \
- --hash=sha256:84b535f00655ecafe1d929d1fb00ed5d6fa3051ea643ab2c161a3887b86f294b \
- --hash=sha256:851b9e1e4e8a4608e77c79714b2e77c0970d2ed7202a05e92ae407817481887b \
- --hash=sha256:85e85586565842f6932abebd4c18bcb1074223dc0b3576e7d173ca710622813a \
- --hash=sha256:87ebdf787d4888e3f3f2d523eadc6e18c6d18c6d0eb173801a189641627fb37e \
- --hash=sha256:8a3ce026d73290f42f08dafecbd82c193a74df280461fbf97300fec51fd133ee \
- --hash=sha256:9132cd363a68a4c3daa7c8704a654b1e39d3360f6f5b8ddd470608a945236c07 \
- --hash=sha256:99cd41ff91afd94896fea3bc002706b6ae4ce95727d06e4a0f39c0a8d8bd8b1a \
- --hash=sha256:9eeb3fcbc13ba40dfbdb22d01d196a28e9cef9ed4c29b60061a1e0e823a9929d \
- --hash=sha256:a06c76364a9360e33d6d23769aefdf7f66f38e2ffb60ceb1baaa4989d83b695c \
- --hash=sha256:a07891c3f4805442b31b71e84ba3cf29ed1aa9a428284e06deeb4b23e5b46343 \
- --hash=sha256:a24a81f9715ee42ef59a316cc11611c98fe23920f7c81861315c9f3ff4a230f4 \
- --hash=sha256:a252f21c27e38347e60111a3266b03827422a7d5525951aceee313aa68bab1d2 \
- --hash=sha256:a311d8e1da24be5c1ccf85cbfb06315dbaa1703d5a1eab3f6432c72b837917c8 \
- --hash=sha256:a5274669f37f2343635a347b91a60777621341ab3378e9c6ac9335eee704bddf \
- --hash=sha256:aa5e304a873fabddc11e484e9b6b738bd38bd7bed17b09aa84eecf5332e8b8bb \
- --hash=sha256:ab4af6352741a604c431c6072fce5bee33bf0f20dc7a56618d6bf6bb89e9810c \
- --hash=sha256:b553d04b5e778a8e56d57eb134aff42a92718ecba45e79c4764ecfa40efd92ff \
- --hash=sha256:b84800013769a78ccb9ef4659402e26d06867e337b61ec365f77ad008adea80e \
- --hash=sha256:b84ffdf877644e7096aa936991efeed873f7f3df57b9cd001312b7668ab08550 \
- --hash=sha256:bcaa50684dcaadfa599ac48f81103c756d791cfd85c97203d2217c593d48b860 \
- --hash=sha256:be9f2c802dcfce3f71298303aa5dad0dce440a76c52f2f60dacd8656dab78793 \
- --hash=sha256:c643734307300234fafa36bf2a040a7235f8f177ea1fd6ec1423aea6fb7b929f \
- --hash=sha256:c79cead5b5bc584d9c71451cb984d0e3a84e0c0937379c8efcbf27c8d661b851 \
- --hash=sha256:c7e057326434e441306226fbeb5d1aaf14a2637efe97ba668306635835f32ad7 \
- --hash=sha256:c912c259304cfb5ee584481cfb7ce1ff932b4d61e6c9140b8f19cb7b5ed82332 \
- --hash=sha256:ce66d8e46da2bb5ee313a745cbd2e391d319176c1f7a9451bfcd3a2fb920859b \
- --hash=sha256:ced2f09ef276fd58611a1ef502164ad266d2b75174e5a40cabbdb4033f9f6cf2 \
- --hash=sha256:cfe5a5fec635799ef33428f1e5e61bafa45a92a96190ba731561ba558ccc214d \
- --hash=sha256:d13e6725992e2d2fd7d81d4f5241952d13740121dfd501da09201be39b2c003a \
- --hash=sha256:d34d75f892b3ab73ba11cab5442cce7b3e168fd64162b16f0e1e0d09c508edef \
- --hash=sha256:d5b89cdfb2ee051b71e8c3c70bd81a9eff81100f736a269136fe1a68efe00474 \
- --hash=sha256:d5ed429d0b8edaac649e889b4ffcedb6c80b06629a3f93050e3dddfb99235bee \
- --hash=sha256:da028256b04ec30e5e0114b6f76172938c313991f0a2d3d894271315cf5d5e43 \
- --hash=sha256:dcbf65f1f66a26cdd88c35cf68fb4729c5d1cd2e88added72420541dfb212034 \
- --hash=sha256:dd34767fa19848d35659ffc0a75314f58c7af3f1cd87ec521e8292a1238398a3 \
- --hash=sha256:ddf799247318f34dbcd2efa8c95a8d0642674e926bb1774cf9b63dfd2a389d1c \
- --hash=sha256:de286598cc65d2b489411174b1faec2f5a7775fb3201fd925db2a76b4030f37d \
- --hash=sha256:e471bc5769ff073b058cfadb0d736b56ce067c8560eabeb0da88462df98c23e7 \
- --hash=sha256:e854312c4103f2ad4c0dc023b69b77ebfd2c89db5f86c4c94dc2353f9a92167e \
- --hash=sha256:ea8cd6ca0ee9f616aaef3afc6882e32c2cbf18b00d96313ffd76af650574034d \
- --hash=sha256:f2302660e32562a532b442480121aef8aa61a5bdb20b30bf0adab29f10a5a4b4 \
- --hash=sha256:f497a1ea81d4cd7c10ddcaa685135b9aabd291af3d55775a9ddf3cb7a364cdd9 \
- --hash=sha256:f4ddbe407477f04c45115d1a4e5bc480f753553b534d338d4c3358b1cdd0ea52 \
- --hash=sha256:f747dc8edcfe740130f28f32f3995e955494285717e86ee25af51db2219df08a \
- --hash=sha256:fad54e871165f6ec2f536063ac74c3104508a12963e64072ba44bd822de52b0c \
- --hash=sha256:fc459e5d73be2d6332fcfe8dbf3d8994671fe33c700f4565988ecfa511547253 \
- --hash=sha256:fd86572566fb40189a8260446158235159bc7a82dfbc87a3b39cf4fb57fcec1c
- # via -r src/backend/requirements-dev.in
+click==8.4.2 \
+ --hash=sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6 \
+ --hash=sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76
+ # via
+ # -c src/backend/requirements-dev.txt
+ # pip-tools
+coverage[toml]==7.14.3 \
+ --hash=sha256:0096fd7559178f0cc9cf088f2dbd2a02ef85bacaa69732c633517286b4494610 \
+ --hash=sha256:02c41de2a88011b893050fc9830267d927a50a215f7ad5ec17349db7090ccf26 \
+ --hash=sha256:0423d64c013057a06e70f070f073cec4b0cbc7d2b27f3c7007292f2ff1d52965 \
+ --hash=sha256:0ee68f5c34812780f3a7063382c0a9fcbb99985b7ddcdcaa626e4f3fb2e0783a \
+ --hash=sha256:11a7ec9f97ab950f4c5af62229befc7faf208fdbc0116d3902d7e306cf2c5abd \
+ --hash=sha256:1551b4caac3e3ec9f2bfcec6bf3776e01c0edbdd2e240431a50ca1a1aac72c27 \
+ --hash=sha256:16b206e521feb8b7133a45754643dead0538489cf8b783b90cf5f4e3299625fd \
+ --hash=sha256:1a7563a443f3d53fdeb040ec8c9f7466aed7ca3dc5891aa09d3ca3625fa4387f \
+ --hash=sha256:1bb93c2aa61d2a5b38f1526546d95cf4132cb681e541a337bf8dfd092be816e5 \
+ --hash=sha256:1e3b91f9c4740aeb571ecf82e5e8d8e4ab62d34fcb5a5d4e5baa38c6f7d2857c \
+ --hash=sha256:2415902f385a23dcc4ccd26e0ba803249a169af6a930c003a4c715eeb9a5444e \
+ --hash=sha256:27d07a46500ba23515b838dbcf52512026af04090755cf6cc64166d88c9b9a1a \
+ --hash=sha256:2bfc4dd0a912329eccc7484a7d0b2a38032b38c40663b1e1ac595f10c457954b \
+ --hash=sha256:2e41fd3aab806770008279a93879b0924b16247e09ab537c043d08bbca53b4ab \
+ --hash=sha256:338b19131ab1a6b767b462bfcbaa692e7ae22f24463e39d49b02a83410ff6b37 \
+ --hash=sha256:360bec1f58e7243e3405d3bdf7a1a8115aa9b448d54dc7cd6f7b7e0e9406b62e \
+ --hash=sha256:39e1dbbb6ff2c338e0196a482558a792a1de3aa64261196f5cdb3da016ad9cda \
+ --hash=sha256:3c68df8e61f1e09633fefc7538297145623957a048534368c9d212782aa5e845 \
+ --hash=sha256:3d74ff26299c4879ce3a4d826f9d3d4d556fd285fde7bbce3c0ef5a8ab1cec24 \
+ --hash=sha256:3e5b550a128419373c2f6cec28a244207013ef15f5cbcff6a5ca09d1dfaaf027 \
+ --hash=sha256:41de778bd41780586e2b04912079c73089ab5d839624e28db3bdb26de638da92 \
+ --hash=sha256:47968988b367990ae4ab17523790c38cd125e02c6bfd379b6022be2d40bdc38c \
+ --hash=sha256:4b60ca6d8af70473491a15a343cbabab2e8f9ea66a4376e81c7aa24876a6f977 \
+ --hash=sha256:4d310baf69a4fbe8a098ce727e4808a34866ac718a6f759ae659cbd3221358bc \
+ --hash=sha256:526ce9721116af23b1065089f0b75046fe521e7772ab94b641cd66b7a0421889 \
+ --hash=sha256:583d50d59142f8549470bd6390471d0fe8b8c8d69d6a0f28ac71e05380cef640 \
+ --hash=sha256:5952f8c1bda2a5347154450379316e6dfa4d934d62ca35f6784451e6f55074fb \
+ --hash=sha256:5d788e5fd55347eef06ca0732c77d04a264de67e8ff24631270cdff3767a60cf \
+ --hash=sha256:605ab2b566a22bd94834529d66d295c364aba84afd3e5498285c7a524017b1fc \
+ --hash=sha256:611e62cb9386096d81b63e0a05330750268617231e7bd598e1fe77482a2c58a5 \
+ --hash=sha256:6197e5a00183c11a8ce7c6abd18be1a9189fd8399084ffc95196f4f0db4f2137 \
+ --hash=sha256:621e13c6108234d7960aaf5762ab5c3c00f33c30c15af06dcbff0c73bf112727 \
+ --hash=sha256:62c7f79db2851c95ef020e5d28b97afde3daf9f7febcd35b53e05638f729063f \
+ --hash=sha256:64b2055bb6e0dc945af35cdeceb3633e6ed9273475ef3af85592410fd6803803 \
+ --hash=sha256:68520c90babfa2d560eca6d497921ed3a4f469623bd709733124491b2aa8ef3f \
+ --hash=sha256:69918344541ed9c8368566c2adc03c0e33d4550d7faa87d1b35e49b6a3286ea9 \
+ --hash=sha256:6a3693b4153394d265f44fb855fdc80e72403024d4d6f91c4871b334d028e4e0 \
+ --hash=sha256:74fdd718d88fe144f4579b8747873a07ec3f04cb837d5faec5a25d9e22fa31a8 \
+ --hash=sha256:7b27c822a8161afbe48e99f1adfb098d270ae7e0f7d7b0555ce110529bdb69cc \
+ --hash=sha256:7dfe427045520d6abca33687dfef767b4f635015893a1816c5decb12eb72ce18 \
+ --hash=sha256:7ea52fc08f007bcc494d4bb3df3851e95843d881860ba38fe2c64dc100db5e7d \
+ --hash=sha256:830c1fca669c572dec37ce9c838224ee45aac5be0f6961edf871e82e49d6537c \
+ --hash=sha256:8427f370ca67db4c975d2a26acfc0e5783ca0b52444dbc50278ace0f35445949 \
+ --hash=sha256:878832eaac515b62decfa76965aed558775f86bf1fc8cca76993c0c84ae31aed \
+ --hash=sha256:8ac012839ff7e396030f1e94e10553a431d14e4de2ab65cb3acb72bbd5628ca2 \
+ --hash=sha256:8cec0ad652ec57790970d817490105bd917d783c2f7b38d6b58a0ca312e1a336 \
+ --hash=sha256:8cf0f2509acb4619e2471a1951089054dd58ebea7a912066d2ea56dd4c24ca4a \
+ --hash=sha256:90f7608aeb5d9b60b523b9fb2a4ee1973867cc4865a3f26fe6c7577073b70205 \
+ --hash=sha256:92c22e19ce64ca3f2ad751f16f14df1468b4c231bd6af97185063a9c292a0cb3 \
+ --hash=sha256:96150a9cf3468ea20f0bc5d0e21b3df8972c31480ef90fa7614b773cc6429665 \
+ --hash=sha256:98a0859b0e98e43e1178a9402e19c8127766b14f7109a374d976e5a62c0e5c73 \
+ --hash=sha256:9973ef2463f8e6cfb61a6324126bb3e17d67a85f22f58d856e583ea2e3ca6501 \
+ --hash=sha256:9a3f142070eb7b82fc4085a55d887396f9c4e21250bccebe2ba22502c45b9647 \
+ --hash=sha256:9be4e7d4c5ca0427889f8f9d614bd630c2be741b1de7699bca3b2b6c0e41003e \
+ --hash=sha256:a090cbf9521e78ffdb2fcf448b72902afe9f5923ff6a12d5c0d0120200348af9 \
+ --hash=sha256:a2335ea5fed26af2e831094964fa3f8fae60b45f7e37fcc2d3b615b2add3ad87 \
+ --hash=sha256:a3c2134809e80fac091bfed18a6991b5a5eb5df5ae32b17ac4f4f99864b73dd7 \
+ --hash=sha256:a571bd889cd36c5922ce8e42e059f9d37d02301531d11374afa4c87a578625d5 \
+ --hash=sha256:a574912f3bde4b0619f6e97d01aa590b70998859244793769eb3a6df78ee56d3 \
+ --hash=sha256:a64caee2193563601dbaaa55fe2dcf597debef04a2f8f1fa8a07aa4bb7ac7a1e \
+ --hash=sha256:ac082660de8f429ba0ea363595abb838998570b9a7546777c60f413ab902bbde \
+ --hash=sha256:b3d77f7f196abdef7e01415de1bce09f216189e83e58159cfeef2b92d0464994 \
+ --hash=sha256:b3ff255799f5a1676c71c1c32ec01fd043aa09d57b3d95764b24992757184784 \
+ --hash=sha256:b488bd4b23397db62e7a9459129d01ff06a846582a732efd24834b24a6ada498 \
+ --hash=sha256:b75ee850fc2d7c831e883220c445b035f2224de2ba6103f1e56dbd237ab913f7 \
+ --hash=sha256:b7f300ac92cd4b570724c8ffbbd0c130fee298d2447f41d5a3abf58976fae1de \
+ --hash=sha256:beaab199b9e5ceaf5a225e16a9d4df136f2a1eae0a5c20de1e277c8a5225f388 \
+ --hash=sha256:c02efd507227bde9969cab0db8f48890eb3b5dcad6afac57a4792df4133543ce \
+ --hash=sha256:c66f9f9d4f1e9712eb9b1de5310f881d4e2188cfcba5065e1a8490f38687f2c4 \
+ --hash=sha256:c90a7cdd5e380e1ce02f19792e2ac2fbfbf177e35a27e69fd3e873b30d895c0c \
+ --hash=sha256:c946099774a7699de03cbd0ff0a64e21aed4525eed9d959adde4afe6d15758ef \
+ --hash=sha256:cc96aa922e21d4bc5d5ed3c915cef27dfcbc13686f47d5e378d647fbfba655a2 \
+ --hash=sha256:d20a15c622194234161535459affa8f7905830391c9ccfa060d495dbfe3a1c7f \
+ --hash=sha256:d48400185564042287dc487c1f016a3397f18ab4f4c5d5ec36edc218f7ffa35b \
+ --hash=sha256:d8e88f335544a47e22ae2e45b344772925ec65166555c958720d5ed971880891 \
+ --hash=sha256:dc9b4e35e7c3920e925ba7f14886fd5fbe481232754624e832ddba66c7535635 \
+ --hash=sha256:de76caefc8deabb0dd1678b6a980be97d14c8d87e213ac194dbf8b09e96d63fb \
+ --hash=sha256:e0bb8a6bc7015efdf8a928753b25da1b9ca2d6f24ef04d2ee0688e486f32aae7 \
+ --hash=sha256:e343fb086c9cd780b38622fea7c369acd64c1a0724312149b5d769c387a2b1f5 \
+ --hash=sha256:e4ed44705ca4bead6fc977a8b741f2145608289b33c8a9b42a95d0f15aedbf4d \
+ --hash=sha256:e574801e1d643561594aa021206c46d80b257e9853087090ba97bed8b0a509d3 \
+ --hash=sha256:e6230e688c7c3e65cedd41a774eb4ec221adc6bfee13768231015b702d5e4150 \
+ --hash=sha256:ea3169c7116eb6cdf7608c6c7da9ecfcb3da40688e3a510fac2d1d2bafd6dc35 \
+ --hash=sha256:eadea7aba74e40adee867a8c0eec17b820b061d308a4b014f7a0e118c2b0aa61 \
+ --hash=sha256:ed68faa5e85de2f3e400bc3f122e5c82735a58c8bb24b9f63a2215954ba17b2d \
+ --hash=sha256:f0a47095963cfe054e0df178daca95aec21e680d6076da807c3add28dfe920f7 \
+ --hash=sha256:f502e948e03e866538048bba081c075caaa62e5bda6ea5b7432e45f587eb462a \
+ --hash=sha256:f82b6bb7d75a2613e85d07cefa3a8c973d0544a8993337f6e2728e4a1e94c305 \
+ --hash=sha256:fa9e5c6857a7e80fa22ace5cf3550ae392bbfc322f1d8dd2d2d5a8be38cec027 \
+ --hash=sha256:fb7e18afb6e903c1a92401a2f0501ac277dca527bb9ca6fe1f691a8a0026a0e8 \
+ --hash=sha256:fbb8c3a98e779013786ae01d229662aeacbc77100efbd3f2f245219ace5af700
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
cryptography==48.0.1 \
--hash=sha256:08a597acce1ff37f347400087776599e2348a3a8bc53b44120e463cd274efe4a \
--hash=sha256:09f73a725d582cef64b91281a322cd798d14a33b2b6f2b7ad9531dc336d84c02 \
@@ -406,6 +401,7 @@ cryptography==48.0.1 \
--hash=sha256:fe0180af5bf9236518a087e35bf2d9a347d5f5f51e63c579d683ddff424e3d46
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# pdfminer-six
django==5.2.15 \
@@ -413,6 +409,7 @@ django==5.2.15 \
--hash=sha256:5154a9bf84ac01dde011e367f355c07dbb329532e06810dcf3ef2af269e236e7
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# django-silk
# django-slowtests
@@ -420,62 +417,88 @@ django==5.2.15 \
# django-stubs-ext
django-querycount==0.8.3 \
--hash=sha256:0782484e8a1bd29498fa0195a67106e47cdcc98fafe80cebb1991964077cb694
- # via -r src/backend/requirements-dev.in
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
django-silk==5.5.0 \
--hash=sha256:41fcabe65d59d31ccdb69daeb3c3e6d30879ab2c00b0875b111fda0f69aec065 \
--hash=sha256:82b5a690d623935be916dd145e2f605a4ac9454d54e03df6a7ffcf38333c8444
- # via -r src/backend/requirements-dev.in
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
django-slowtests==1.1.1 \
--hash=sha256:3c6936d420c9df444ac03625b41d97de043c662bbde61fbcd33e4cd407d0c247
- # via -r src/backend/requirements-dev.in
-django-stubs==6.0.5 \
- --hash=sha256:7742b8e60afc68a8545158e2bdb103376d5a092f7902c17f370920a9c08eb957 \
- --hash=sha256:9fb9eede9b2fc47b36c3dc4a93652eb959dff45466ec4a580e4a22782192d746
- # via -r src/backend/requirements-dev.in
-django-stubs-ext==6.0.5 \
- --hash=sha256:1cc325e991303849bce70e19748981b225ef08b37256f263e113caf97cd3bcc0 \
- --hash=sha256:a9932c8233d6dd4e34ae0b192026379c1a9be8f0b7c27aa1fa09ae215169773e
- # via django-stubs
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
+django-stubs==6.0.6 \
+ --hash=sha256:c488fea05a9eac40ddbdc69887f63a5c0922cb13df285291ee99c9bbc89bc4f1 \
+ --hash=sha256:dfc01e052e33c7f8f0c30c3ff8eda0903ee29ac710d1e46d9effd773744a69b0
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
+django-stubs-ext==6.0.6 \
+ --hash=sha256:5470c970f61a3ccf5aae7633feef1a097f944f417b955da200c9ac26ecd9134b \
+ --hash=sha256:e6f09884e48d7c5b250a373dfa22aa3e83bb91b8babbd8d05187f6b92247f232
+ # via
+ # -c src/backend/requirements-dev.txt
+ # django-stubs
django-test-migrations==1.5.0 \
--hash=sha256:1cbff04b1e82c5564a6f635284907b381cc11a2ff883adff46776d9126824f07 \
--hash=sha256:96a08f085fc8bfaa53d44618341d82a2d22fd194c821cd81b147b66f0bec0da8
- # via -r src/backend/requirements-dev.in
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
django-types==0.24.0 \
--hash=sha256:af903de8b9ee963b7594459a7a20cb8eaaab176ae2b3244ecaa089e0c570b0d1 \
--hash=sha256:ddb478ca733e0dde5475118dd59ab340156980f9659fd92de2083326ae96100a
- # via -r src/backend/requirements-dev.in
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
gprof2dot==2025.4.14 \
--hash=sha256:0742e4c0b4409a5e8777e739388a11e1ed3750be86895655312ea7c20bd0090e \
--hash=sha256:35743e2d2ca027bf48fa7cba37021aaf4a27beeae1ae8e05a50b55f1f921a6ce
- # via django-silk
+ # via
+ # -c src/backend/requirements-dev.txt
+ # django-silk
idna==3.18 \
--hash=sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2 \
--hash=sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# requests
iniconfig==2.3.0 \
--hash=sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730 \
--hash=sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12
- # via pytest
+ # via
+ # -c src/backend/requirements-dev.txt
+ # pytest
isort==8.0.1 \
--hash=sha256:171ac4ff559cdc060bcfff550bc8404a486fee0caab245679c2abe7cb253c78d \
--hash=sha256:28b89bc70f751b559aeca209e6120393d43fbe2490de0559662be7a9787e3d75
- # via -r src/backend/requirements-dev.in
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
markdown-it-py==4.2.0 \
--hash=sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49 \
--hash=sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a
- # via rich
+ # via
+ # -c src/backend/requirements-dev.txt
+ # rich
mdurl==0.1.2 \
--hash=sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8 \
--hash=sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba
- # via markdown-it-py
+ # via
+ # -c src/backend/requirements-dev.txt
+ # markdown-it-py
packaging==26.2 \
--hash=sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e \
--hash=sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# build
# pytest
@@ -483,19 +506,27 @@ packaging==26.2 \
pdfminer-six==20260107 \
--hash=sha256:366585ba97e80dffa8f00cebe303d2f381884d8637af4ce422f1df3ef38111a9 \
--hash=sha256:96bfd431e3577a55a0efd25676968ca4ce8fd5b53f14565f85716ff363889602
- # via -r src/backend/requirements-dev.in
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
pip==26.1.2 \
--hash=sha256:382ff9f685ee3bc25864f820aa50505825f10f5458ffff07e30a6d96e5715cab \
--hash=sha256:f49cd134c61cf2fd75e0ce2676db03e4054504a5a4986d00f8299ae632dc4605
- # via pip-tools
+ # via
+ # -c src/backend/requirements-dev.txt
+ # pip-tools
pip-tools==7.5.3 \
--hash=sha256:3aac0c473240ae90db7213c033401f345b05197293ccbdd2704e52e7a783785e \
--hash=sha256:8fa364779ebc010cbfe17cb9de404457ac733e100840423f28f6955de7742d41
- # via -r src/backend/requirements-dev.in
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
pluggy==1.6.0 \
--hash=sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3 \
--hash=sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746
- # via pytest
+ # via
+ # -c src/backend/requirements-dev.txt
+ # pytest
prek==0.4.5 \
--hash=sha256:14109d37b33e5529db41a3539d4f8f72d295f6eeddede3964994d898b8cec05c \
--hash=sha256:1fd98b986767dafdb6b4305b563ee5a3a8f13bd3c78b98d708626815ea9f147f \
@@ -514,30 +545,36 @@ prek==0.4.5 \
--hash=sha256:e491a1a4641d91d8b03dcce5588397e76d2a5b432c9b0a6c70475972b4512ab4 \
--hash=sha256:f7517774c72b001573520dc7111156779fd3e5b4452c11f09ff53c71a067e835 \
--hash=sha256:fccd11613ae92619d1ecda0ab3359ceebeb38898909ec84a8d383733d12158cc
- # via -r src/backend/requirements-dev.in
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
pycparser==3.0 \
--hash=sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29 \
--hash=sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# cffi
pygments==2.20.0 \
--hash=sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f \
--hash=sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176
# via
+ # -c src/backend/requirements-dev.txt
# pytest
# rich
pyproject-hooks==1.2.0 \
--hash=sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8 \
--hash=sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913
# via
+ # -c src/backend/requirements-dev.txt
# build
# pip-tools
pytest==9.1.1 \
--hash=sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313 \
--hash=sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c
# via
+ # -c src/backend/requirements-dev.txt
# pytest-codspeed
# pytest-django
pytest-codspeed==5.0.3 \
@@ -570,31 +607,41 @@ pytest-codspeed==5.0.3 \
--hash=sha256:f56d0339cd98d26f6e561987be25bdd2761a5d53d8f73493b1ebe02d0d451093 \
--hash=sha256:f852bee785a7a124cb1720b1915670c6742af87747dc4d838f3ffdbd365ce9d9 \
--hash=sha256:fe2ea83c924c2250675b75686c3ee456b8cf0208d83d552e182a195fdf467378
- # via -r src/backend/requirements-dev.in
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
pytest-django==4.12.0 \
--hash=sha256:3ff300c49f8350ba2953b90297d23bf5f589db69545f56f1ec5f8cff5da83e85 \
--hash=sha256:df94ec819a83c8979c8f6de13d9cdfbe76e8c21d39473cfe2b40c9fc9be3c758
- # via -r src/backend/requirements-dev.in
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
requests==2.34.2 \
--hash=sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0 \
--hash=sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# requests-mock
requests-mock==1.12.1 \
--hash=sha256:b1e37054004cdd5e56c84454cc7df12b25f90f382159087f4b6915aaeef39563 \
--hash=sha256:e9e12e333b525156e82a3c852f22016b9158220d2f47454de9cae8a77d371401
- # via -r src/backend/requirements-dev.in
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
rich==15.0.0 \
--hash=sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb \
--hash=sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36
- # via pytest-codspeed
+ # via
+ # -c src/backend/requirements-dev.txt
+ # pytest-codspeed
setuptools==82.0.1 \
--hash=sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9 \
--hash=sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# -r src/backend/requirements-dev.in
# pip-tools
@@ -603,42 +650,50 @@ sqlparse==0.5.5 \
--hash=sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# django
# django-silk
-ty==0.0.1a21 \
- --hash=sha256:0efba2e52b58f536f4198ba5c4a36cac2ba67d83ec6f429ebc7704233bcda4c3 \
- --hash=sha256:1474d883129bb63da3b2380fc7ead824cd3baf6a9551e6aa476ffefc58057af3 \
- --hash=sha256:1f276ceab23a1410aec09508248c76ae0989c67fb7a0c287e0d4564994295531 \
- --hash=sha256:218d53e7919e885bd98e9196d9cb952d82178b299aa36da6f7f39333eb7400ed \
- --hash=sha256:21f708d02b6588323ffdbfdba38830dd0ecfd626db50aa6006b296b5470e52f9 \
- --hash=sha256:334d2a212ebf42a0e55d57561926af7679fe1e878175e11dcb81ad8df892844e \
- --hash=sha256:3c3bc66fcae41eff133cfe326dd65d82567a2fb5d4efe2128773b10ec2766819 \
- --hash=sha256:5dfc73299d441cc6454e36ed0a976877415024143dfca6592dc36f7701424383 \
- --hash=sha256:7505aeb8bf2a62f00f12cfa496f6c965074d75c8126268776565284c8a12d5dd \
- --hash=sha256:84243455f295ed850bd53f7089819321807d4e6ee3b1cbff6086137ae0259466 \
- --hash=sha256:87a200c21e02962e8a27374d9d152582331d57d709672431be58f4f898bf6cad \
- --hash=sha256:9463cac96b8f1bb5ba740fe1d42cd6bd152b43c5b159b2f07f8fd629bcdded34 \
- --hash=sha256:a8c769987d00fbc33054ff7e342633f475ea10dc43bc60fb9fb056159d48cb90 \
- --hash=sha256:ba13d03b9e095216ceb4e4d554a308517f28ab0a6e4dcd07cfe94563e4c2c489 \
- --hash=sha256:be8f457d7841b7ead2a3f6b65ba668abc172a1150a0f1f6c0958af3725dbb61a \
- --hash=sha256:cc0880ec344fbdf736b05d8d0da01f0caaaa02409bd9a24b68d18d0127a79b0e \
- --hash=sha256:e941e9a9d1e54b03eeaf9c3197c26a19cf76009fd5e41e16e5657c1c827bd6d3 \
- --hash=sha256:ecf41706b803827b0de8717f32a434dad1e67be9f4b8caf403e12013179ea06a
- # via -r src/backend/requirements-dev.in
+ty==0.0.54 \
+ --hash=sha256:01ab9eb8c0802d35ae73fa08e4e037963250ee5ee6aa7ed8c8b994e5495db5ef \
+ --hash=sha256:0365ea133d6b028952c22e6412a00da9739bc3b538df3c0a61972bf64d8558f1 \
+ --hash=sha256:0de0cf48918609a3996cc2a4e18e8028fc4d2446bb82df822e9737f53bb9afee \
+ --hash=sha256:2259e1a1f744a5f20f079dcc4061c1464001c75f255aaca7316e422f8f5e5e09 \
+ --hash=sha256:57c7c6c1fcd2aa29cd40117142c0d45a2b0e6c42817ef58ea8dcb5f59d6ea802 \
+ --hash=sha256:5a0a764e2261f9292adf14bbc91b9d7ef7ee7c00b8f3d9f2563f19ae3605109b \
+ --hash=sha256:651e90094d41c4add3d616e0f2c1c881c6700a2ae3ac191c023c665050ff2cdc \
+ --hash=sha256:6a0ce5af9eefe636888377d8ab8ea817239ed96de64fede62c4e5331ae16db5c \
+ --hash=sha256:6e43124e6ac4cb9702d99facb28c6b2f2574c8a4b8f59eae2632eef4962e3439 \
+ --hash=sha256:7e876c9b5130afc6b6e46035a2eecca9b563b78249030296e1089922428d5415 \
+ --hash=sha256:8674617617399d4fdd568b3e3a8f87a913df525c80691d732b0744b571b341c8 \
+ --hash=sha256:994ede70fc1b6f0efc29d0f1fc0d819630bed1d2610eac2e9dabb2840f3f3bf9 \
+ --hash=sha256:ad329d1942e23ee428948e673b2a50249f27e164220075b0a2ef8169029c8423 \
+ --hash=sha256:b1d048df26abb433acc5b3bcef214167c7dc9e3341f8f200a3c59702516a0ed0 \
+ --hash=sha256:b6b3cfe174f27744413c898b2488ca52ea76070637095de131698e506b455055 \
+ --hash=sha256:dc179be5a070c5dc7785a5e108eece2ab216978a91f91e11661308749a6c28ee \
+ --hash=sha256:e949f7bbfa80a9fa00968924028aa673a505faa234b0b9d1241b7d34373eae14 \
+ --hash=sha256:f478476f3222807b4d92f15c5298a8c242f2ed17c724da75f4a8c6b522b4f29a
+ # via
+ # -c src/backend/requirements-dev.txt
+ # -r src/backend/requirements-dev.in
types-psycopg2==2.9.21.20260518 \
--hash=sha256:2fd728a4fa3860db0a4a9813e5f49c30ed329b3d2e60e73530d9db01b2b98420 \
--hash=sha256:8b1f80d90d6799a4fcdac12198b382a8feee9ed4340d5f69b56fc5ffa0644143
- # via django-types
+ # via
+ # -c src/backend/requirements-dev.txt
+ # django-types
types-pyyaml==6.0.12.20260518 \
--hash=sha256:d2150f75a231c9fe9c7463bd29487d93e60bac90400287351384bc2284eba7cd \
--hash=sha256:d917f83fb38462550338c1297faedd860b3ec83912b96b1e3d73255f7473e466
- # via django-stubs
+ # via
+ # -c src/backend/requirements-dev.txt
+ # django-stubs
typing-extensions==4.15.0 \
--hash=sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466 \
--hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# django-stubs
# django-stubs-ext
@@ -648,9 +703,12 @@ urllib3==2.7.0 \
--hash=sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897
# via
# -c src/backend/requirements-3.14.txt
+ # -c src/backend/requirements-dev.txt
# -c src/backend/requirements.txt
# requests
wheel==0.47.0 \
--hash=sha256:212281cab4dff978f6cedd499cd893e1f620791ca6ff7107cf270781e587eced \
--hash=sha256:cc72bd1009ba0cf63922e28f94d9d83b920aa2bb28f798a31d0691b02fa3c9b3
- # via pip-tools
+ # via
+ # -c src/backend/requirements-dev.txt
+ # pip-tools
diff --git a/src/backend/requirements-dev.txt b/src/backend/requirements-dev.txt
index 38d084dbaf..3b24ac287b 100644
--- a/src/backend/requirements-dev.txt
+++ b/src/backend/requirements-dev.txt
@@ -238,117 +238,102 @@ charset-normalizer==3.4.7 \
# -c src/backend/requirements.txt
# pdfminer-six
# requests
-click==8.4.1 \
- --hash=sha256:482be17c6991b8c19c5429a1e995d9b0efdbb63172824c41f99965dc0ade8ec2 \
- --hash=sha256:918b5633eddf6b41c32d4f454bf0de810065c74e3f7dbf8ee5452f8be88d3e96
+click==8.4.2 \
+ --hash=sha256:9a6cea6e60b17ebe0a44c5cc636d94f09bd66142c1cd7d8b4cd731c4917a15f6 \
+ --hash=sha256:e6f9f66136c816745b9d65817da91d61d957fb16e02e4dcd0552553c5a197b76
# via pip-tools
-coverage[toml]==7.14.1 \
- --hash=sha256:0177614a0370f227888b4e436a7c55686d6a9f90eb1ade2b624ba685a1686e86 \
- --hash=sha256:01b7733daad0237daa01ef80fe2dfceffc911e6a17fa7b55d14aa8214eaaaecd \
- --hash=sha256:03a6f93c1ec3b7f2e77b5dbcc5573a2c21f12529a5c6bbe0f16f72303cc2fa4d \
- --hash=sha256:042c46ded7c288aeb07cf14a28b6c1e10b78fcba40171c3fa1e939377eeef0b5 \
- --hash=sha256:06144cd511cf2624873a035c5069cf297144f6e77a73ee3d7a55b605ec5efb42 \
- --hash=sha256:07c6290b1697b862c0478eab545eec949a0d0e4d6d03497f446d706da3b4f2de \
- --hash=sha256:10274a1fbeb8ec5d72966e17bb198a3104257aca4ac09d98667c5f8aca8c8548 \
- --hash=sha256:1101a5ebb083aecb625ebb6209d4105b58f647b093cb2dc8122d7b33f743cfe1 \
- --hash=sha256:114c95ef29302423b87d159075805f4ab973254a2638a5d7d046c94887cc87d7 \
- --hash=sha256:1238cb94638e610e972c60dac68e813f868dc7d6e982535270558443058d9d59 \
- --hash=sha256:12c42ec1e14f553c4f817e989365982e646e27211f10a0f717855b94a79c8906 \
- --hash=sha256:145986fe66647eb489f18d9a997567a3fd358584c4b5a808769113abc07466af \
- --hash=sha256:17a5a241e5997621a956a7f402a7433ef4221e5152809b785bec79e2323799f1 \
- --hash=sha256:1896f5e19ff3f0431c7ce2172adc54890fd97f86b59ced8ca1649145d9ffe35d \
- --hash=sha256:196a13319ad88d6d8ef5ab489ec4f44ddde2143c0c7d5b27786f6c3ffd56a7e1 \
- --hash=sha256:221c70f316241a78e77e607c227cefc8808d4e08f28d99c04f35694690e940be \
- --hash=sha256:2222be86d0b54f5dd5a38f45f17f315f737245e857bf0bdedc70734f84a13c02 \
- --hash=sha256:2224f89ffd0c5605ccce1ed7a584da162bc7c55f601ab1c946bc9de31a486b42 \
- --hash=sha256:23bf7fa51ac02e07fc7c96849b82946da47ae862dc8f86d183b2a4864fc38129 \
- --hash=sha256:2d69af5dea2de76fc485a83032a630523f985198b7e25be901ec60181587b01e \
- --hash=sha256:30c08f7d90415aa98b3c990385dea2939b0da55f38515e5b369b83655f8523be \
- --hash=sha256:357d4e32935c36588aaba057d734fa32428c360c9fc2e4442afbf1b646beee6e \
- --hash=sha256:35ab22d91de736e8966b980dc355cbcdd2c6dbbcfe275f9a2991bc8a91b3df65 \
- --hash=sha256:370c5afae3fa0658e11694a32b24c2778f6bc2d17718121f94ee185e69f26b54 \
- --hash=sha256:3758dd0a7f1fa57365ef2e781df0f0731d38b6e3772259d13dae4bd8a958d4b1 \
- --hash=sha256:39b21e212c55af06fa375e3dbf90a8a8e38792f3a910c580066d23563830ddd5 \
- --hash=sha256:3a56abc20a472baf0304c455721bc601477440d28ecfde8a03dde79ede07e0df \
- --hash=sha256:3c18ebc343e15be53049b3a2dce38fe82d58f37e20ab9094b3a39c0aa4f6bb47 \
- --hash=sha256:3d452fd08b5c72c5167c93e6867b5c08500bd40f2a21e1e854a500550b6cc36f \
- --hash=sha256:3e3680291c4a1d0dadfa84a2c459576a4af5133abb617905714339a0c73138cf \
- --hash=sha256:442cc9c952b2df400cda54bb04ab87330cf2cd08a8692cbbea36773531eb6f37 \
- --hash=sha256:46f714d2fb8ae2f4f29f23ada7f1e79b759fff5a70f94a1dac23af204c3ec9e4 \
- --hash=sha256:478b5bcd63c2e1357c5c7e16c070690df7b07f676b1c114d7b93e533c664309f \
- --hash=sha256:48b283b1dd6372e8de2a7a9a4c4d5dc06f4d4fd209b876f3c88a7a205a0c8f84 \
- --hash=sha256:4a28fd227808366b196a75476dced2eb35b351d6766ba9c858dc93319e87f4f1 \
- --hash=sha256:4ea1c034f95c9b056e856b794630b17f9fa3d57e4800ff1e503d3be0f9c9078c \
- --hash=sha256:51bd64741cc6fa065abd300ede1afe5a5291ece9c31da8b24884deda48bcc3f8 \
- --hash=sha256:54acdb6674a4661768d7bf7db32dfb9f46ab1d764f8aba6df75ce1a6a088724e \
- --hash=sha256:59baf88468dbc8d63b1887afd92bda52e40bb1561696e5819670601403810cec \
- --hash=sha256:5a1c5215be81035e629d5bc756650634d0bf31991038db7a0eccb90f025ce16d \
- --hash=sha256:5b0c99ba93a07d56f6df340bb79be53202a082b2fdb81bfe6190b741a3470d54 \
- --hash=sha256:5ea0c297e27133853b4d8a3eb799bff5a2dbd9f2f41537a240d337ac9b4df890 \
- --hash=sha256:5f0cfc27c539f07cf5c0a4cfe211d0b6cae039f8f40526dbaa71944e64b50a7b \
- --hash=sha256:6223a72fd0e4c7156353ec0f08a5f93623e1d3034d0e2683b9bb8ea674131b1d \
- --hash=sha256:62a9f70b52e0b5a95cfef4a5c5641b06983cadc5e538a3feeb5c00211f523ac2 \
- --hash=sha256:62fd185ef9df3c33d1c8178c5af105f762afbad96038de9a4ae100aa6297ca33 \
- --hash=sha256:6a3cb83d1552c0cd1b4906655b6a33fd4a8473229633a901c6b73bf86914dee9 \
- --hash=sha256:6adc5a36984624a70bf11d7184e20fa0a49aa7c47ffab43804106a1a695ea22e \
- --hash=sha256:6b6b0853b895fe0e98cbfc580d1ec3393d9302b4b1e96a77b3f5c91fdab899e6 \
- --hash=sha256:6ff665fb023a77386fe11685190cee1f60a7d635994a30d9b0a061533d470fce \
- --hash=sha256:7279d2110a28cebc738b6459ecda2771735a4c18465fbbd36b3288fe5ed92247 \
- --hash=sha256:76a085d7005236a767e3426148b2c407e53ad61695c562f8a81da2d373324901 \
- --hash=sha256:7771b601718fdde84832c3a434ca9bbf4ae9adbc49d84198b4110700c3c77c36 \
- --hash=sha256:79058c47dae6788504b5effb319961bcd72d7240551464b91d474bc0ed186d69 \
- --hash=sha256:7af486dabe8954d03b087f0021540897afe084f04e16ff5579e08cc46f871416 \
- --hash=sha256:7f02d09f70776579b926d889a4c9c235070a1f47c40458aeaca563fae5acfdb5 \
- --hash=sha256:8011224a62280e50dab346960c03cf47aca1a1e09e608c0fb33fd6e0cc8e9500 \
- --hash=sha256:8270544c361ed405a27a060dbc9ed2c124b084d96dfdc2d9a2510482aef981ad \
- --hash=sha256:84ac9499e48700399a5dd0ea7085b5091961fec52c68d66b4ec0d3cf7f4441b1 \
- --hash=sha256:84b535f00655ecafe1d929d1fb00ed5d6fa3051ea643ab2c161a3887b86f294b \
- --hash=sha256:851b9e1e4e8a4608e77c79714b2e77c0970d2ed7202a05e92ae407817481887b \
- --hash=sha256:85e85586565842f6932abebd4c18bcb1074223dc0b3576e7d173ca710622813a \
- --hash=sha256:87ebdf787d4888e3f3f2d523eadc6e18c6d18c6d0eb173801a189641627fb37e \
- --hash=sha256:8a3ce026d73290f42f08dafecbd82c193a74df280461fbf97300fec51fd133ee \
- --hash=sha256:9132cd363a68a4c3daa7c8704a654b1e39d3360f6f5b8ddd470608a945236c07 \
- --hash=sha256:99cd41ff91afd94896fea3bc002706b6ae4ce95727d06e4a0f39c0a8d8bd8b1a \
- --hash=sha256:9eeb3fcbc13ba40dfbdb22d01d196a28e9cef9ed4c29b60061a1e0e823a9929d \
- --hash=sha256:a06c76364a9360e33d6d23769aefdf7f66f38e2ffb60ceb1baaa4989d83b695c \
- --hash=sha256:a07891c3f4805442b31b71e84ba3cf29ed1aa9a428284e06deeb4b23e5b46343 \
- --hash=sha256:a24a81f9715ee42ef59a316cc11611c98fe23920f7c81861315c9f3ff4a230f4 \
- --hash=sha256:a252f21c27e38347e60111a3266b03827422a7d5525951aceee313aa68bab1d2 \
- --hash=sha256:a311d8e1da24be5c1ccf85cbfb06315dbaa1703d5a1eab3f6432c72b837917c8 \
- --hash=sha256:a5274669f37f2343635a347b91a60777621341ab3378e9c6ac9335eee704bddf \
- --hash=sha256:aa5e304a873fabddc11e484e9b6b738bd38bd7bed17b09aa84eecf5332e8b8bb \
- --hash=sha256:ab4af6352741a604c431c6072fce5bee33bf0f20dc7a56618d6bf6bb89e9810c \
- --hash=sha256:b553d04b5e778a8e56d57eb134aff42a92718ecba45e79c4764ecfa40efd92ff \
- --hash=sha256:b84800013769a78ccb9ef4659402e26d06867e337b61ec365f77ad008adea80e \
- --hash=sha256:b84ffdf877644e7096aa936991efeed873f7f3df57b9cd001312b7668ab08550 \
- --hash=sha256:bcaa50684dcaadfa599ac48f81103c756d791cfd85c97203d2217c593d48b860 \
- --hash=sha256:be9f2c802dcfce3f71298303aa5dad0dce440a76c52f2f60dacd8656dab78793 \
- --hash=sha256:c643734307300234fafa36bf2a040a7235f8f177ea1fd6ec1423aea6fb7b929f \
- --hash=sha256:c79cead5b5bc584d9c71451cb984d0e3a84e0c0937379c8efcbf27c8d661b851 \
- --hash=sha256:c7e057326434e441306226fbeb5d1aaf14a2637efe97ba668306635835f32ad7 \
- --hash=sha256:c912c259304cfb5ee584481cfb7ce1ff932b4d61e6c9140b8f19cb7b5ed82332 \
- --hash=sha256:ce66d8e46da2bb5ee313a745cbd2e391d319176c1f7a9451bfcd3a2fb920859b \
- --hash=sha256:ced2f09ef276fd58611a1ef502164ad266d2b75174e5a40cabbdb4033f9f6cf2 \
- --hash=sha256:cfe5a5fec635799ef33428f1e5e61bafa45a92a96190ba731561ba558ccc214d \
- --hash=sha256:d13e6725992e2d2fd7d81d4f5241952d13740121dfd501da09201be39b2c003a \
- --hash=sha256:d34d75f892b3ab73ba11cab5442cce7b3e168fd64162b16f0e1e0d09c508edef \
- --hash=sha256:d5b89cdfb2ee051b71e8c3c70bd81a9eff81100f736a269136fe1a68efe00474 \
- --hash=sha256:d5ed429d0b8edaac649e889b4ffcedb6c80b06629a3f93050e3dddfb99235bee \
- --hash=sha256:da028256b04ec30e5e0114b6f76172938c313991f0a2d3d894271315cf5d5e43 \
- --hash=sha256:dcbf65f1f66a26cdd88c35cf68fb4729c5d1cd2e88added72420541dfb212034 \
- --hash=sha256:dd34767fa19848d35659ffc0a75314f58c7af3f1cd87ec521e8292a1238398a3 \
- --hash=sha256:ddf799247318f34dbcd2efa8c95a8d0642674e926bb1774cf9b63dfd2a389d1c \
- --hash=sha256:de286598cc65d2b489411174b1faec2f5a7775fb3201fd925db2a76b4030f37d \
- --hash=sha256:e471bc5769ff073b058cfadb0d736b56ce067c8560eabeb0da88462df98c23e7 \
- --hash=sha256:e854312c4103f2ad4c0dc023b69b77ebfd2c89db5f86c4c94dc2353f9a92167e \
- --hash=sha256:ea8cd6ca0ee9f616aaef3afc6882e32c2cbf18b00d96313ffd76af650574034d \
- --hash=sha256:f2302660e32562a532b442480121aef8aa61a5bdb20b30bf0adab29f10a5a4b4 \
- --hash=sha256:f497a1ea81d4cd7c10ddcaa685135b9aabd291af3d55775a9ddf3cb7a364cdd9 \
- --hash=sha256:f4ddbe407477f04c45115d1a4e5bc480f753553b534d338d4c3358b1cdd0ea52 \
- --hash=sha256:f747dc8edcfe740130f28f32f3995e955494285717e86ee25af51db2219df08a \
- --hash=sha256:fad54e871165f6ec2f536063ac74c3104508a12963e64072ba44bd822de52b0c \
- --hash=sha256:fc459e5d73be2d6332fcfe8dbf3d8994671fe33c700f4565988ecfa511547253 \
- --hash=sha256:fd86572566fb40189a8260446158235159bc7a82dfbc87a3b39cf4fb57fcec1c
+coverage[toml]==7.14.3 \
+ --hash=sha256:0096fd7559178f0cc9cf088f2dbd2a02ef85bacaa69732c633517286b4494610 \
+ --hash=sha256:02c41de2a88011b893050fc9830267d927a50a215f7ad5ec17349db7090ccf26 \
+ --hash=sha256:0423d64c013057a06e70f070f073cec4b0cbc7d2b27f3c7007292f2ff1d52965 \
+ --hash=sha256:0ee68f5c34812780f3a7063382c0a9fcbb99985b7ddcdcaa626e4f3fb2e0783a \
+ --hash=sha256:11a7ec9f97ab950f4c5af62229befc7faf208fdbc0116d3902d7e306cf2c5abd \
+ --hash=sha256:1551b4caac3e3ec9f2bfcec6bf3776e01c0edbdd2e240431a50ca1a1aac72c27 \
+ --hash=sha256:16b206e521feb8b7133a45754643dead0538489cf8b783b90cf5f4e3299625fd \
+ --hash=sha256:1a7563a443f3d53fdeb040ec8c9f7466aed7ca3dc5891aa09d3ca3625fa4387f \
+ --hash=sha256:1bb93c2aa61d2a5b38f1526546d95cf4132cb681e541a337bf8dfd092be816e5 \
+ --hash=sha256:1e3b91f9c4740aeb571ecf82e5e8d8e4ab62d34fcb5a5d4e5baa38c6f7d2857c \
+ --hash=sha256:2415902f385a23dcc4ccd26e0ba803249a169af6a930c003a4c715eeb9a5444e \
+ --hash=sha256:27d07a46500ba23515b838dbcf52512026af04090755cf6cc64166d88c9b9a1a \
+ --hash=sha256:2bfc4dd0a912329eccc7484a7d0b2a38032b38c40663b1e1ac595f10c457954b \
+ --hash=sha256:2e41fd3aab806770008279a93879b0924b16247e09ab537c043d08bbca53b4ab \
+ --hash=sha256:338b19131ab1a6b767b462bfcbaa692e7ae22f24463e39d49b02a83410ff6b37 \
+ --hash=sha256:360bec1f58e7243e3405d3bdf7a1a8115aa9b448d54dc7cd6f7b7e0e9406b62e \
+ --hash=sha256:39e1dbbb6ff2c338e0196a482558a792a1de3aa64261196f5cdb3da016ad9cda \
+ --hash=sha256:3c68df8e61f1e09633fefc7538297145623957a048534368c9d212782aa5e845 \
+ --hash=sha256:3d74ff26299c4879ce3a4d826f9d3d4d556fd285fde7bbce3c0ef5a8ab1cec24 \
+ --hash=sha256:3e5b550a128419373c2f6cec28a244207013ef15f5cbcff6a5ca09d1dfaaf027 \
+ --hash=sha256:41de778bd41780586e2b04912079c73089ab5d839624e28db3bdb26de638da92 \
+ --hash=sha256:47968988b367990ae4ab17523790c38cd125e02c6bfd379b6022be2d40bdc38c \
+ --hash=sha256:4b60ca6d8af70473491a15a343cbabab2e8f9ea66a4376e81c7aa24876a6f977 \
+ --hash=sha256:4d310baf69a4fbe8a098ce727e4808a34866ac718a6f759ae659cbd3221358bc \
+ --hash=sha256:526ce9721116af23b1065089f0b75046fe521e7772ab94b641cd66b7a0421889 \
+ --hash=sha256:583d50d59142f8549470bd6390471d0fe8b8c8d69d6a0f28ac71e05380cef640 \
+ --hash=sha256:5952f8c1bda2a5347154450379316e6dfa4d934d62ca35f6784451e6f55074fb \
+ --hash=sha256:5d788e5fd55347eef06ca0732c77d04a264de67e8ff24631270cdff3767a60cf \
+ --hash=sha256:605ab2b566a22bd94834529d66d295c364aba84afd3e5498285c7a524017b1fc \
+ --hash=sha256:611e62cb9386096d81b63e0a05330750268617231e7bd598e1fe77482a2c58a5 \
+ --hash=sha256:6197e5a00183c11a8ce7c6abd18be1a9189fd8399084ffc95196f4f0db4f2137 \
+ --hash=sha256:621e13c6108234d7960aaf5762ab5c3c00f33c30c15af06dcbff0c73bf112727 \
+ --hash=sha256:62c7f79db2851c95ef020e5d28b97afde3daf9f7febcd35b53e05638f729063f \
+ --hash=sha256:64b2055bb6e0dc945af35cdeceb3633e6ed9273475ef3af85592410fd6803803 \
+ --hash=sha256:68520c90babfa2d560eca6d497921ed3a4f469623bd709733124491b2aa8ef3f \
+ --hash=sha256:69918344541ed9c8368566c2adc03c0e33d4550d7faa87d1b35e49b6a3286ea9 \
+ --hash=sha256:6a3693b4153394d265f44fb855fdc80e72403024d4d6f91c4871b334d028e4e0 \
+ --hash=sha256:74fdd718d88fe144f4579b8747873a07ec3f04cb837d5faec5a25d9e22fa31a8 \
+ --hash=sha256:7b27c822a8161afbe48e99f1adfb098d270ae7e0f7d7b0555ce110529bdb69cc \
+ --hash=sha256:7dfe427045520d6abca33687dfef767b4f635015893a1816c5decb12eb72ce18 \
+ --hash=sha256:7ea52fc08f007bcc494d4bb3df3851e95843d881860ba38fe2c64dc100db5e7d \
+ --hash=sha256:830c1fca669c572dec37ce9c838224ee45aac5be0f6961edf871e82e49d6537c \
+ --hash=sha256:8427f370ca67db4c975d2a26acfc0e5783ca0b52444dbc50278ace0f35445949 \
+ --hash=sha256:878832eaac515b62decfa76965aed558775f86bf1fc8cca76993c0c84ae31aed \
+ --hash=sha256:8ac012839ff7e396030f1e94e10553a431d14e4de2ab65cb3acb72bbd5628ca2 \
+ --hash=sha256:8cec0ad652ec57790970d817490105bd917d783c2f7b38d6b58a0ca312e1a336 \
+ --hash=sha256:8cf0f2509acb4619e2471a1951089054dd58ebea7a912066d2ea56dd4c24ca4a \
+ --hash=sha256:90f7608aeb5d9b60b523b9fb2a4ee1973867cc4865a3f26fe6c7577073b70205 \
+ --hash=sha256:92c22e19ce64ca3f2ad751f16f14df1468b4c231bd6af97185063a9c292a0cb3 \
+ --hash=sha256:96150a9cf3468ea20f0bc5d0e21b3df8972c31480ef90fa7614b773cc6429665 \
+ --hash=sha256:98a0859b0e98e43e1178a9402e19c8127766b14f7109a374d976e5a62c0e5c73 \
+ --hash=sha256:9973ef2463f8e6cfb61a6324126bb3e17d67a85f22f58d856e583ea2e3ca6501 \
+ --hash=sha256:9a3f142070eb7b82fc4085a55d887396f9c4e21250bccebe2ba22502c45b9647 \
+ --hash=sha256:9be4e7d4c5ca0427889f8f9d614bd630c2be741b1de7699bca3b2b6c0e41003e \
+ --hash=sha256:a090cbf9521e78ffdb2fcf448b72902afe9f5923ff6a12d5c0d0120200348af9 \
+ --hash=sha256:a2335ea5fed26af2e831094964fa3f8fae60b45f7e37fcc2d3b615b2add3ad87 \
+ --hash=sha256:a3c2134809e80fac091bfed18a6991b5a5eb5df5ae32b17ac4f4f99864b73dd7 \
+ --hash=sha256:a571bd889cd36c5922ce8e42e059f9d37d02301531d11374afa4c87a578625d5 \
+ --hash=sha256:a574912f3bde4b0619f6e97d01aa590b70998859244793769eb3a6df78ee56d3 \
+ --hash=sha256:a64caee2193563601dbaaa55fe2dcf597debef04a2f8f1fa8a07aa4bb7ac7a1e \
+ --hash=sha256:ac082660de8f429ba0ea363595abb838998570b9a7546777c60f413ab902bbde \
+ --hash=sha256:b3d77f7f196abdef7e01415de1bce09f216189e83e58159cfeef2b92d0464994 \
+ --hash=sha256:b3ff255799f5a1676c71c1c32ec01fd043aa09d57b3d95764b24992757184784 \
+ --hash=sha256:b488bd4b23397db62e7a9459129d01ff06a846582a732efd24834b24a6ada498 \
+ --hash=sha256:b75ee850fc2d7c831e883220c445b035f2224de2ba6103f1e56dbd237ab913f7 \
+ --hash=sha256:b7f300ac92cd4b570724c8ffbbd0c130fee298d2447f41d5a3abf58976fae1de \
+ --hash=sha256:beaab199b9e5ceaf5a225e16a9d4df136f2a1eae0a5c20de1e277c8a5225f388 \
+ --hash=sha256:c02efd507227bde9969cab0db8f48890eb3b5dcad6afac57a4792df4133543ce \
+ --hash=sha256:c66f9f9d4f1e9712eb9b1de5310f881d4e2188cfcba5065e1a8490f38687f2c4 \
+ --hash=sha256:c90a7cdd5e380e1ce02f19792e2ac2fbfbf177e35a27e69fd3e873b30d895c0c \
+ --hash=sha256:c946099774a7699de03cbd0ff0a64e21aed4525eed9d959adde4afe6d15758ef \
+ --hash=sha256:cc96aa922e21d4bc5d5ed3c915cef27dfcbc13686f47d5e378d647fbfba655a2 \
+ --hash=sha256:d20a15c622194234161535459affa8f7905830391c9ccfa060d495dbfe3a1c7f \
+ --hash=sha256:d48400185564042287dc487c1f016a3397f18ab4f4c5d5ec36edc218f7ffa35b \
+ --hash=sha256:d8e88f335544a47e22ae2e45b344772925ec65166555c958720d5ed971880891 \
+ --hash=sha256:dc9b4e35e7c3920e925ba7f14886fd5fbe481232754624e832ddba66c7535635 \
+ --hash=sha256:de76caefc8deabb0dd1678b6a980be97d14c8d87e213ac194dbf8b09e96d63fb \
+ --hash=sha256:e0bb8a6bc7015efdf8a928753b25da1b9ca2d6f24ef04d2ee0688e486f32aae7 \
+ --hash=sha256:e343fb086c9cd780b38622fea7c369acd64c1a0724312149b5d769c387a2b1f5 \
+ --hash=sha256:e4ed44705ca4bead6fc977a8b741f2145608289b33c8a9b42a95d0f15aedbf4d \
+ --hash=sha256:e574801e1d643561594aa021206c46d80b257e9853087090ba97bed8b0a509d3 \
+ --hash=sha256:e6230e688c7c3e65cedd41a774eb4ec221adc6bfee13768231015b702d5e4150 \
+ --hash=sha256:ea3169c7116eb6cdf7608c6c7da9ecfcb3da40688e3a510fac2d1d2bafd6dc35 \
+ --hash=sha256:eadea7aba74e40adee867a8c0eec17b820b061d308a4b014f7a0e118c2b0aa61 \
+ --hash=sha256:ed68faa5e85de2f3e400bc3f122e5c82735a58c8bb24b9f63a2215954ba17b2d \
+ --hash=sha256:f0a47095963cfe054e0df178daca95aec21e680d6076da807c3add28dfe920f7 \
+ --hash=sha256:f502e948e03e866538048bba081c075caaa62e5bda6ea5b7432e45f587eb462a \
+ --hash=sha256:f82b6bb7d75a2613e85d07cefa3a8c973d0544a8993337f6e2728e4a1e94c305 \
+ --hash=sha256:fa9e5c6857a7e80fa22ace5cf3550ae392bbfc322f1d8dd2d2d5a8be38cec027 \
+ --hash=sha256:fb7e18afb6e903c1a92401a2f0501ac277dca527bb9ca6fe1f691a8a0026a0e8 \
+ --hash=sha256:fbb8c3a98e779013786ae01d229662aeacbc77100efbd3f2f245219ace5af700
# via -r src/backend/requirements-dev.in
cryptography==48.0.1 \
--hash=sha256:08a597acce1ff37f347400087776599e2348a3a8bc53b44120e463cd274efe4a \
@@ -422,13 +407,13 @@ django-silk==5.5.0 \
django-slowtests==1.1.1 \
--hash=sha256:3c6936d420c9df444ac03625b41d97de043c662bbde61fbcd33e4cd407d0c247
# via -r src/backend/requirements-dev.in
-django-stubs==6.0.5 \
- --hash=sha256:7742b8e60afc68a8545158e2bdb103376d5a092f7902c17f370920a9c08eb957 \
- --hash=sha256:9fb9eede9b2fc47b36c3dc4a93652eb959dff45466ec4a580e4a22782192d746
+django-stubs==6.0.6 \
+ --hash=sha256:c488fea05a9eac40ddbdc69887f63a5c0922cb13df285291ee99c9bbc89bc4f1 \
+ --hash=sha256:dfc01e052e33c7f8f0c30c3ff8eda0903ee29ac710d1e46d9effd773744a69b0
# via -r src/backend/requirements-dev.in
-django-stubs-ext==6.0.5 \
- --hash=sha256:1cc325e991303849bce70e19748981b225ef08b37256f263e113caf97cd3bcc0 \
- --hash=sha256:a9932c8233d6dd4e34ae0b192026379c1a9be8f0b7c27aa1fa09ae215169773e
+django-stubs-ext==6.0.6 \
+ --hash=sha256:5470c970f61a3ccf5aae7633feef1a097f944f417b955da200c9ac26ecd9134b \
+ --hash=sha256:e6f09884e48d7c5b250a373dfa22aa3e83bb91b8babbd8d05187f6b92247f232
# via django-stubs
django-test-migrations==1.5.0 \
--hash=sha256:1cbff04b1e82c5564a6f635284907b381cc11a2ff883adff46776d9126824f07 \
@@ -594,74 +579,25 @@ sqlparse==0.5.5 \
# -c src/backend/requirements.txt
# django
# django-silk
-tomli==2.4.1 \
- --hash=sha256:01f520d4f53ef97964a240a035ec2a869fe1a37dde002b57ebc4417a27ccd853 \
- --hash=sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe \
- --hash=sha256:136443dbd7e1dee43c68ac2694fde36b2849865fa258d39bf822c10e8068eac5 \
- --hash=sha256:1d8591993e228b0c930c4bb0db464bdad97b3289fb981255d6c9a41aedc84b2d \
- --hash=sha256:2190f2e9dd7508d2a90ded5ed369255980a1bcdd58e52f7fe24b8162bf9fedbd \
- --hash=sha256:2c1c351919aca02858f740c6d33adea0c5deea37f9ecca1cc1ef9e884a619d26 \
- --hash=sha256:36d2bd2ad5fb9eaddba5226aa02c8ec3fa4f192631e347b3ed28186d43be6b54 \
- --hash=sha256:3d48a93ee1c9b79c04bb38772ee1b64dcf18ff43085896ea460ca8dec96f35f6 \
- --hash=sha256:47149d5bd38761ac8be13a84864bf0b7b70bc051806bc3669ab1cbc56216b23c \
- --hash=sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a \
- --hash=sha256:4b605484e43cdc43f0954ddae319fb75f04cc10dd80d830540060ee7cd0243cd \
- --hash=sha256:504aa796fe0569bb43171066009ead363de03675276d2d121ac1a4572397870f \
- --hash=sha256:51529d40e3ca50046d7606fa99ce3956a617f9b36380da3b7f0dd3dd28e68cb5 \
- --hash=sha256:52c8ef851d9a240f11a88c003eacb03c31fc1c9c4ec64a99a0f922b93874fda9 \
- --hash=sha256:559db847dc486944896521f68d8190be1c9e719fced785720d2216fe7022b662 \
- --hash=sha256:5a881ab208c0baf688221f8cecc5401bd291d67e38a1ac884d6736cbcd8247e9 \
- --hash=sha256:5cb41aa38891e073ee49d55fbc7839cfdb2bc0e600add13874d048c94aadddd1 \
- --hash=sha256:5e262d41726bc187e69af7825504c933b6794dc3fbd5945e41a79bb14c31f585 \
- --hash=sha256:5ee18d9ebdb417e384b58fe414e8d6af9f4e7a0ae761519fb50f721de398dd4e \
- --hash=sha256:7008df2e7655c495dd12d2a4ad038ff878d4ca4b81fccaf82b714e07eae4402c \
- --hash=sha256:734e20b57ba95624ecf1841e72b53f6e186355e216e5412de414e3c51e5e3c41 \
- --hash=sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f \
- --hash=sha256:7f86fd587c4ed9dd76f318225e7d9b29cfc5a9d43de44e5754db8d1128487085 \
- --hash=sha256:7f94b27a62cfad8496c8d2513e1a222dd446f095fca8987fceef261225538a15 \
- --hash=sha256:88dceee75c2c63af144e456745e10101eb67361050196b0b6af5d717254dddf7 \
- --hash=sha256:8a650c2dbafa08d42e51ba0b62740dae4ecb9338eefa093aa5c78ceb546fcd5c \
- --hash=sha256:8d65a2fbf9d2f8352685bc1364177ee3923d6baf5e7f43ea4959d7d8bc326a36 \
- --hash=sha256:96481a5786729fd470164b47cdb3e0e58062a496f455ee41b4403be77cb5a076 \
- --hash=sha256:a120733b01c45e9a0c34aeef92bf0cf1d56cfe81ed9d47d562f9ed591a9828ac \
- --hash=sha256:b1d22e6e9387bf4739fbe23bfa80e93f6b0373a7f1b96c6227c32bef95a4d7a8 \
- --hash=sha256:b8c198f8c1805dc42708689ed6864951fd2494f924149d3e4bce7710f8eb5232 \
- --hash=sha256:c2541745709bad0264b7d4705ad453b76ccd191e64aa6f0fc66b69a293a45ece \
- --hash=sha256:c742f741d58a28940ce01d58f0ab2ea3ced8b12402f162f4d534dfe18ba1cd6a \
- --hash=sha256:c7f2c7f2b9ca6bdeef8f0fa897f8e05085923eb091721675170254cbc5b02897 \
- --hash=sha256:d312ef37c91508b0ab2cee7da26ec0b3ed2f03ce12bd87a588d771ae15dcf82d \
- --hash=sha256:d4d8fe59808a54658fcc0160ecfb1b30f9089906c50b23bcb4c69eddc19ec2b4 \
- --hash=sha256:da25dc3563bff5965356133435b757a795a17b17d01dbc0f42fb32447ddfd917 \
- --hash=sha256:eab21f45c7f66c13f2a9e0e1535309cee140182a9cdae1e041d02e47291e8396 \
- --hash=sha256:eb0dc4e38e6a1fd579e5d50369aa2e10acfc9cace504579b2faabb478e76941a \
- --hash=sha256:ec9bfaf3ad2df51ace80688143a6a4ebc09a248f6ff781a9945e51937008fcbc \
- --hash=sha256:ede3e6487c5ef5d28634ba3f31f989030ad6af71edfb0055cbbd14189ff240ba \
- --hash=sha256:f3c6818a1a86dd6dca7ddcaaf76947d5ba31aecc28cb1b67009a5877c9a64f3f \
- --hash=sha256:f758f1b9299d059cc3f6546ae2af89670cb1c4d48ea29c3cacc4fe7de3058257 \
- --hash=sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30 \
- --hash=sha256:fd0409a3653af6c147209d267a0e4243f0ae46b011aa978b1080359fddc9b6cf \
- --hash=sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9 \
- --hash=sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049
- # via coverage
-ty==0.0.1a21 \
- --hash=sha256:0efba2e52b58f536f4198ba5c4a36cac2ba67d83ec6f429ebc7704233bcda4c3 \
- --hash=sha256:1474d883129bb63da3b2380fc7ead824cd3baf6a9551e6aa476ffefc58057af3 \
- --hash=sha256:1f276ceab23a1410aec09508248c76ae0989c67fb7a0c287e0d4564994295531 \
- --hash=sha256:218d53e7919e885bd98e9196d9cb952d82178b299aa36da6f7f39333eb7400ed \
- --hash=sha256:21f708d02b6588323ffdbfdba38830dd0ecfd626db50aa6006b296b5470e52f9 \
- --hash=sha256:334d2a212ebf42a0e55d57561926af7679fe1e878175e11dcb81ad8df892844e \
- --hash=sha256:3c3bc66fcae41eff133cfe326dd65d82567a2fb5d4efe2128773b10ec2766819 \
- --hash=sha256:5dfc73299d441cc6454e36ed0a976877415024143dfca6592dc36f7701424383 \
- --hash=sha256:7505aeb8bf2a62f00f12cfa496f6c965074d75c8126268776565284c8a12d5dd \
- --hash=sha256:84243455f295ed850bd53f7089819321807d4e6ee3b1cbff6086137ae0259466 \
- --hash=sha256:87a200c21e02962e8a27374d9d152582331d57d709672431be58f4f898bf6cad \
- --hash=sha256:9463cac96b8f1bb5ba740fe1d42cd6bd152b43c5b159b2f07f8fd629bcdded34 \
- --hash=sha256:a8c769987d00fbc33054ff7e342633f475ea10dc43bc60fb9fb056159d48cb90 \
- --hash=sha256:ba13d03b9e095216ceb4e4d554a308517f28ab0a6e4dcd07cfe94563e4c2c489 \
- --hash=sha256:be8f457d7841b7ead2a3f6b65ba668abc172a1150a0f1f6c0958af3725dbb61a \
- --hash=sha256:cc0880ec344fbdf736b05d8d0da01f0caaaa02409bd9a24b68d18d0127a79b0e \
- --hash=sha256:e941e9a9d1e54b03eeaf9c3197c26a19cf76009fd5e41e16e5657c1c827bd6d3 \
- --hash=sha256:ecf41706b803827b0de8717f32a434dad1e67be9f4b8caf403e12013179ea06a
+ty==0.0.54 \
+ --hash=sha256:01ab9eb8c0802d35ae73fa08e4e037963250ee5ee6aa7ed8c8b994e5495db5ef \
+ --hash=sha256:0365ea133d6b028952c22e6412a00da9739bc3b538df3c0a61972bf64d8558f1 \
+ --hash=sha256:0de0cf48918609a3996cc2a4e18e8028fc4d2446bb82df822e9737f53bb9afee \
+ --hash=sha256:2259e1a1f744a5f20f079dcc4061c1464001c75f255aaca7316e422f8f5e5e09 \
+ --hash=sha256:57c7c6c1fcd2aa29cd40117142c0d45a2b0e6c42817ef58ea8dcb5f59d6ea802 \
+ --hash=sha256:5a0a764e2261f9292adf14bbc91b9d7ef7ee7c00b8f3d9f2563f19ae3605109b \
+ --hash=sha256:651e90094d41c4add3d616e0f2c1c881c6700a2ae3ac191c023c665050ff2cdc \
+ --hash=sha256:6a0ce5af9eefe636888377d8ab8ea817239ed96de64fede62c4e5331ae16db5c \
+ --hash=sha256:6e43124e6ac4cb9702d99facb28c6b2f2574c8a4b8f59eae2632eef4962e3439 \
+ --hash=sha256:7e876c9b5130afc6b6e46035a2eecca9b563b78249030296e1089922428d5415 \
+ --hash=sha256:8674617617399d4fdd568b3e3a8f87a913df525c80691d732b0744b571b341c8 \
+ --hash=sha256:994ede70fc1b6f0efc29d0f1fc0d819630bed1d2610eac2e9dabb2840f3f3bf9 \
+ --hash=sha256:ad329d1942e23ee428948e673b2a50249f27e164220075b0a2ef8169029c8423 \
+ --hash=sha256:b1d048df26abb433acc5b3bcef214167c7dc9e3341f8f200a3c59702516a0ed0 \
+ --hash=sha256:b6b3cfe174f27744413c898b2488ca52ea76070637095de131698e506b455055 \
+ --hash=sha256:dc179be5a070c5dc7785a5e108eece2ab216978a91f91e11661308749a6c28ee \
+ --hash=sha256:e949f7bbfa80a9fa00968924028aa673a505faa234b0b9d1241b7d34373eae14 \
+ --hash=sha256:f478476f3222807b4d92f15c5298a8c242f2ed17c724da75f4a8c6b522b4f29a
# via -r src/backend/requirements-dev.in
types-psycopg2==2.9.21.20260518 \
--hash=sha256:2fd728a4fa3860db0a4a9813e5f49c30ed329b3d2e60e73530d9db01b2b98420 \
diff --git a/src/backend/requirements.in b/src/backend/requirements.in
index 2c279968f9..50588bce64 100644
--- a/src/backend/requirements.in
+++ b/src/backend/requirements.in
@@ -1,12 +1,12 @@
# Please keep this list sorted - if you pin a version provide a reason
django<6.0 # Django package
blessed # CLI for Q Monitor
-cryptography>=48.0.1 # Core cryptographic functionality
+cryptography # Core cryptographic functionality
django-anymail[amazon_ses,postal] # Email backend for various providers
django-allauth[mfa,socialaccount,saml,openid,headless] # SSO for external providers via OpenID
django-cleanup # Automated deletion of old / unused uploaded files
django-cors-headers # CORS headers extension for DRF
-django-dbbackup>=5.0.0 # Backup / restore of database and media files
+django-dbbackup # Backup / restore of database and media files
django-error-report-2 # Error report viewer for the admin interface
django-filter # Extended filtering options
django-flags # Feature flags
@@ -16,7 +16,7 @@ django-mailbox # Email scraping
django-markdownify # Markdown rendering
django-money # Django app for currency management
django-mptt # Modified Preorder Tree Traversal
-django-redis>=7.0.0 # Redis integration
+django-redis # Redis integration
django-q2 # Background task scheduling
django-q-sentry # sentry.io integration for django-q
django-sesame # Magic link authentication
@@ -46,7 +46,7 @@ ppf.datamatrix # Data Matrix barcode generator
pypdf # PDF manipulation tools
python-barcode[images] # Barcode generator
python-dotenv # Environment variable management
-pyyaml>=6.0.1 # YAML parsing
+pyyaml # YAML parsing
qrcode[pil] # QR code generator
rapidfuzz # Fuzzy string matching
sentry-sdk # Error reporting (optional)
@@ -69,6 +69,3 @@ opentelemetry-instrumentation-system_metrics
opentelemetry-instrumentation-wsgi
opentelemetry-instrumentation-psycopg
opentelemetry-instrumentation-pymysql
-
-# Pins
-xmlsec==1.3.17
diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt
index 08533040af..c9e27528a7 100644
--- a/src/backend/requirements.txt
+++ b/src/backend/requirements.txt
@@ -8,10 +8,6 @@ asgiref==3.11.1 \
# django-allauth
# django-cors-headers
# django-structlog
-async-timeout==5.0.1 \
- --hash=sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c \
- --hash=sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3
- # via redis
attrs==26.1.0 \
--hash=sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309 \
--hash=sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32
@@ -95,15 +91,15 @@ blessed==1.44.0 \
--hash=sha256:d3b5037f0143eb7c80b2000be5bcdf86161af68aed231b91deadbce4e7379785 \
--hash=sha256:e1d2ed93d3d90d0a1494a8b134d188c83fb89ae25590af638b921e8c1c8fa223
# via -r src/backend/requirements.in
-boto3==1.43.34 \
- --hash=sha256:42595057324606928c6e2432b3093978e4d722e0d432bce942f2a385702c0a43 \
- --hash=sha256:444207c6c883d4df3ea3b2c36df43ad492b86e0b889eebd2fc1d5ea8db0a8a1a
+boto3==1.43.36 \
+ --hash=sha256:42942dde254673abcbc9e6e60017c88341a4f49d99d24e1f2e290fb38138c26f \
+ --hash=sha256:587d7ee92a12e440ad12b0e7f11f3358f0c4d65b19f64726efc94aaf194aff28
# via
# django-anymail
# django-storages
-botocore==1.43.34 \
- --hash=sha256:238a0269f33c5914b9343900b44767e783b3e8b6dcb6e065eac8b4495601c5df \
- --hash=sha256:ccc973cf30c6445b30afe5760f6dc949a80f1f862cb23d9c45747f2c814ece77
+botocore==1.43.36 \
+ --hash=sha256:3c65fdc39ed01d8dfde1e961b34038aed03c459f8ddf80717a12ac006475e49d \
+ --hash=sha256:4cae47d1b2d426316b85a0087d9e69e048f13bc003b5177d74639fe9dfd28205
# via
# boto3
# s3transfer
@@ -854,9 +850,9 @@ gunicorn==26.0.0 \
--hash=sha256:40233d26a5f0d1872916188c276e21641155111c2853f0c2cd55260aec0d24fc \
--hash=sha256:ca9346f85e3a4aeeb64d491045c16b9a35647abd37ea15efe53080eb8b090baf
# via -r src/backend/requirements.in
-icalendar==7.1.3 \
- --hash=sha256:690f30aa50a76cbf854db5ad52654705db9c5cd0e1b152222f5d4b7854b60667 \
- --hash=sha256:eb03a0e215f30db689a72c49f18f998aabf17522eb0858a293c393510850727c
+icalendar==7.2.0 \
+ --hash=sha256:32dacc396101825b82f9f1bbdf691c02be613130d5ab7a457e553fcd20959fdd \
+ --hash=sha256:77922b6be57dfcc2e94f93063d2fd7e948ada9b5bdf7b08bebbc684b1b66c7c4
# via django-ical
idna==3.18 \
--hash=sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2 \
@@ -898,9 +894,9 @@ jsonschema-specifications==2025.9.1 \
--hash=sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe \
--hash=sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d
# via jsonschema
-jwcrypto==1.5.7 \
- --hash=sha256:70204d7cca406eda8c82352e3c41ba2d946610dafd19e54403f0a1f4f18633c6 \
- --hash=sha256:729463fefe28b6de5cf1ebfda3e94f1a1b41d2799148ef98a01cb9678ebe2bb0
+jwcrypto==1.5.8 \
+ --hash=sha256:85aeb475f808d56bbc2f2ed1f6f73e6a317c4011a4321505f02f0aed695a3742 \
+ --hash=sha256:c3d7114b6f6e65b52f6b7da817eb8cb8423e1da31e1ef13508447c81ecbdcc34
# via django-oauth-toolkit
lxml==6.1.1 \
--hash=sha256:05a82eb6e1530a64f26225b55cbd178113bd0b5af1c2b625f25e5296742c26d2 \
@@ -1135,34 +1131,34 @@ markupsafe==3.0.3 \
--hash=sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a \
--hash=sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50
# via jinja2
-nh3==0.3.5 \
- --hash=sha256:0a09f51806fd51b4fedbf9ea2b61fef388f19aef0d62fe51199d41648be14588 \
- --hash=sha256:207c01801d3e9bb8ec08f08689346bdd30ce15b8bf60013a925d08b5388962a4 \
- --hash=sha256:23a312224875f72cd16bde417f49071451877e29ef646a60e50fcb69407cc18a \
- --hash=sha256:2c069570b06aa848457713ad7af4a9905691291548c4466a9ad78ee95808382b \
- --hash=sha256:38748140bf76383ab7ce2dce0ad4cb663855d8fbc9098f7f3483673d09616a17 \
- --hash=sha256:387abd011e81959d5a35151a11350a0795c6edeb53ebfa02d2e882dc01299263 \
- --hash=sha256:3bb854485c9b33e5bb143ff3e49e577073bc6bc320f0ff8fc316dd89c0d3c101 \
- --hash=sha256:45855e14ff056064fec77133bfcf7cd691838168e5e17bbef075394954dc9dc8 \
- --hash=sha256:45e6a65dc88a300a2e3502cb9c8e6d1d6b831d6fba7470643333609c6aab1f30 \
- --hash=sha256:488928988caad25ba14b1eb5bc74e25e21f3b5e40341d956f3ce4a8bc19460dc \
- --hash=sha256:48f45e3e914be93a596431aa143dedf1582557bf41a58153c296048d6e3798c9 \
- --hash=sha256:50d401ab2d8e86d59e2126e3ab2a2f45840c405842b626d9a51624b3a33b6878 \
- --hash=sha256:52d877980d7ca01dc3baf3936bf844828bc6f332962227a684ed79c18cce14c3 \
- --hash=sha256:559e4c73b689e9a7aa97ac9760b1bc488038d7c1a575aa4ab5a0e19ee9630c0f \
- --hash=sha256:6ea58cc44d274c643b83547ca9654a0b1a817609b160601356f76a2b744c49ad \
- --hash=sha256:72c5bdedec27fa33de6a5326346ea8aa3fe54f6ac294d54c4b204fb66a9f1e79 \
- --hash=sha256:84bdeb082544fbcb77a12c034dd77d7da0556fdc0727b787eb6214b958c15e29 \
- --hash=sha256:8f85285700a18e9f3fc5bff41fe573fa84f81542ef13b48a89f9fecca0474d3b \
- --hash=sha256:acfd354e61accbe4c74f8017c6e397a776916dfe47c48643cf7fd84ade826f93 \
- --hash=sha256:c357f1d042c67f135a5e6babb2b0e3b9d9224ff4a3543240f597767b01384ffd \
- --hash=sha256:c3aae321f67ae66cff2a627115f106a377d4475d10b0e13d97959a13486b9a88 \
- --hash=sha256:c88605d8d468f7fc1b31e06129bc91d6c96f6c621776c9b504a0da9beac9df5f \
- --hash=sha256:de8e8621853b6470fe928c684ee0d3f39ea8086cebafe4c416486488dea7b68d \
- --hash=sha256:e49c9b564e6bcb03ecd2f057213df9a0de15a95812ac9db9600b590db23d3ae9 \
- --hash=sha256:ea232933394d1d58bf7c4bb348dc4660eae6604e1ae81cd2ba6d9ed80d390f3b \
- --hash=sha256:eeedc90ed8c42c327e8e10e621ccfa314fc6cce35d5929f4297ff1cdb89667c4 \
- --hash=sha256:fe3a787dc76b50de6bee54ef242f26c41dfe47654428e3e94f0fae5bb6dd2cc1
+nh3==0.3.6 \
+ --hash=sha256:082675ff87b9385ec430ffe6d5847ba7456cc39b73720cd4add472f9f4cffd56 \
+ --hash=sha256:2411e8c3cee81a1ddd62c2a5d50585c28aa5566d373ad1db92536b95ddb24ef2 \
+ --hash=sha256:25c733bee928530556b1db0ea46c52cf5aa686146e38e60a6fc7cb801ef91cec \
+ --hash=sha256:2f90d9a0cfdbee218994fdaaeeb5a0fde62d08f35e4eef0378ec1e2200172fd0 \
+ --hash=sha256:34d2b0d934156b87ee114f599a3ba9b8b9e17b5d79652ba3a13fa50903de965e \
+ --hash=sha256:36d06341bd501240d320f5942481ed5e6846136b666e1ba4faf802b78ebc875f \
+ --hash=sha256:43bc1ed3fa0716295fabee29ba42b2667e4a51d140b0a68e092170a765474fa6 \
+ --hash=sha256:44673b27010051ab5a5e438a86ec31bbda61d4a77d7e900af6b7be3037c1abae \
+ --hash=sha256:455469a29951edc92bc48b47ac2281c3f2609e6c4f6a047056449f8c2c23facf \
+ --hash=sha256:4713502748f564fee0633b37b3403783ce0a3af3a3d148ad91025a5bdadb7bc6 \
+ --hash=sha256:5276ef17bdba9ad8040575c74072008b13aae429436e9d0429e718bb5f90f4da \
+ --hash=sha256:597a8e843bea00b2eb5520658dc24a9bb032e7fc9e7c2c0c4cd29420220c9796 \
+ --hash=sha256:69bbb92865a693d909db3a700d3c01537533844d0948c1e9323561ce06ecda41 \
+ --hash=sha256:69f365963f63a1e9bff53bdbb3c542c7c2efed3e163c9d5d83a772a2ac468c21 \
+ --hash=sha256:82ca5bf427ad1b216b65ede1a2e2d87dc49bec417ceba0f297213107d3cd9d78 \
+ --hash=sha256:889932a97fb4abb6f95fef1914c0d269ebfb60011e67121c1163059b9449dbb4 \
+ --hash=sha256:905f877dc66dd7aea4a76e54bcb26acb5ff8216f720c0017ccf63e0e6035698e \
+ --hash=sha256:a43ebd7543555c3ac1bc353023d0794e75cb76f6f18f19c32e95441496c0cc25 \
+ --hash=sha256:d14bf7982e7a77c0c775634c29c07ce08b38a046df73e1c1f139b3e82f18a38e \
+ --hash=sha256:e196fa70c2ff2eb4de7d3df3108f8f358c1d69dff20d45b11f20a5aa227ffb6d \
+ --hash=sha256:e1b160831c9cdb06a6c79c2f9cdb11386602938f9af260d1c457a85add4f6f69 \
+ --hash=sha256:e6b7beece07525dc6e6b0fc2f104442de2ba328360ad00e50cbe2e1fd620447d \
+ --hash=sha256:edb2b4a1a27523e6cc7c417f8d21ce3d005243548b93e56b762b66b0c7f589f9 \
+ --hash=sha256:f2f14b7ae1fca99c4a66c981aac3974e7fbc1ca30a12673d223ae1df76680917 \
+ --hash=sha256:f338ac7d594c067679f1e99b4f5ec3906842979560f9d8f15d6bdfa39a353b10 \
+ --hash=sha256:f3736c9dd3d1856f80cd031715b84ca75cda2bbb1ac802c3da26bfce590838d7 \
+ --hash=sha256:f5ed5fe84aee7f39db95c214a7421bf0499fbf500fec6d86a4e29bfc37971438
# via -r src/backend/requirements.in
oauthlib==3.3.1 \
--hash=sha256:0f0f8aa759826a193cf66c12ea1af1637f87b9b4622d46e866952bb022e538c9 \
@@ -1174,9 +1170,9 @@ openpyxl==3.1.5 \
--hash=sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2 \
--hash=sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050
# via tablib
-opentelemetry-api==1.42.1 \
- --hash=sha256:51a69edacadbc03a8950ace1c4c21099cacc538820ac2c9e36277e78cebba714 \
- --hash=sha256:56c63bea9f77b62856be8c47600474acad853b2924b99b1687c4cb6297166716
+opentelemetry-api==1.43.0 \
+ --hash=sha256:107d0d03857ea8fc7c5fcbbbd83f800c281f0d560553d61c1d675fccfd1761c1 \
+ --hash=sha256:20acf45e9b21851926835292e4045d290acade1edd2ff3de86d2f069687ba1fd
# via
# -r src/backend/requirements.in
# opentelemetry-exporter-otlp-proto-grpc
@@ -1193,27 +1189,27 @@ opentelemetry-api==1.42.1 \
# opentelemetry-instrumentation-wsgi
# opentelemetry-sdk
# opentelemetry-semantic-conventions
-opentelemetry-exporter-otlp==1.42.1 \
- --hash=sha256:2d9ebaed714377a67d224d46795ddcc11d2c877fa5de35fda70b6f3b010729a9 \
- --hash=sha256:aedd54545bb0587cd45210abdc8be545af9c01413f3307786e276df1e3c83bee
+opentelemetry-exporter-otlp==1.43.0 \
+ --hash=sha256:65aded6c50ee7dd2b9948c9d0e59ddb4ed4eea6e8532fba95cbe6a4a64a566ba \
+ --hash=sha256:70f3fe740a64596d4157588a2ee7e4fd37d2acc0c0f522a2882b8c29316cd0f0
# via -r src/backend/requirements.in
-opentelemetry-exporter-otlp-proto-common==1.42.1 \
- --hash=sha256:04f1f01fb597c4249dfcd7f8b861c902c2102369d376d9d346ff38de4469a2ee \
- --hash=sha256:f48d395ab815b444da118868977e9798ea354c25737d5cf39578ae894011c140
+opentelemetry-exporter-otlp-proto-common==1.43.0 \
+ --hash=sha256:123c3f9cc87218562490c63b36f497bf3a722faf174a515d1443f31ababa6264 \
+ --hash=sha256:c4e32ba6d6b13bdb2b8f6764c4fd28d00192826561aa04f6d14eedfce7ac076f
# via
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
-opentelemetry-exporter-otlp-proto-grpc==1.42.1 \
- --hash=sha256:0ae1177e2038b18a929b3098215243631ef91136cba26b7e2b12790ceb7e87cc \
- --hash=sha256:975c4461f167dd8ed8857d68d3b6b25f3d272eab896f6a9470d0f5b90e2faf15
+opentelemetry-exporter-otlp-proto-grpc==1.43.0 \
+ --hash=sha256:1b3e0627daa9bc21884d4a13946807c255eb558bfe5bdd543dffb6f4c9faee0d \
+ --hash=sha256:6a10d1feacffffda19acacbf277b736094b1e2f4dbb98c90ccb2c6e1962e2ec6
# via opentelemetry-exporter-otlp
-opentelemetry-exporter-otlp-proto-http==1.42.1 \
- --hash=sha256:00a16da1b312a1d6c7233d600d557c91df71125af73020f3b9a7765bd699d59d \
- --hash=sha256:bf142a21035d7571ac3a09cb2e5639f49886f243972883cfe777ed3bf02b734d
+opentelemetry-exporter-otlp-proto-http==1.43.0 \
+ --hash=sha256:647f603aa8efdbdb4dbff842e0729d0406a6fff26b295a72d3d60e7d963b2610 \
+ --hash=sha256:fa8a42bb7d00ee5391f4c0b04d8e6a46c03caa437903296ab73a81dc11ba118f
# via opentelemetry-exporter-otlp
-opentelemetry-instrumentation==0.63b1 \
- --hash=sha256:32368d6ae52c8de20aa790a6ad86b10a76f09956092337ae37d675773990e541 \
- --hash=sha256:f1986716d52cc316ea5f60189098726a9071d8ecc0eee96c9ed110be08bade9c
+opentelemetry-instrumentation==0.64b0 \
+ --hash=sha256:133ab7ffca796557aec059bf6be3190a34b6dea987f25be3d9409e230cbdad8b \
+ --hash=sha256:b47d528dead6271d7743114417eb67fc915bd9258111c48dbf9a4951d2efa88d
# via
# opentelemetry-instrumentation-dbapi
# opentelemetry-instrumentation-django
@@ -1224,64 +1220,64 @@ opentelemetry-instrumentation==0.63b1 \
# opentelemetry-instrumentation-sqlite3
# opentelemetry-instrumentation-system-metrics
# opentelemetry-instrumentation-wsgi
-opentelemetry-instrumentation-dbapi==0.63b1 \
- --hash=sha256:1bc842ddcacb7ec3622ef306ffdb3c584bf97df79d381e03604ea6eb23c63781 \
- --hash=sha256:406978ed56bcfc5fd246fd918e6b36d0f5de26fa396c78cf63326a7b530597c8
+opentelemetry-instrumentation-dbapi==0.64b0 \
+ --hash=sha256:1caa96d438bf37f71dd778c9f1e03ba1f50b8ab54aeef68b2a630c93c05cddc6 \
+ --hash=sha256:8e3a1528fc9753a04190a7e7bf0180c5abd059f3aa68ec3857edb363c9847c44
# via
# opentelemetry-instrumentation-psycopg
# opentelemetry-instrumentation-pymysql
# opentelemetry-instrumentation-sqlite3
-opentelemetry-instrumentation-django==0.63b1 \
- --hash=sha256:909ea4afbb18f16eb811d7ac330ed0f6fda7765191d49bccb8cca38c4fbc005f \
- --hash=sha256:f2071d2f92e4779c5a14dd452b0dfe426343599e6efa9d888304fb639a9f3101
+opentelemetry-instrumentation-django==0.64b0 \
+ --hash=sha256:3d2673b4f77156b15b1b119c8849b50e3644cfc325f7a24c03602596de2dbba4 \
+ --hash=sha256:c1f628e53c22aa8f9cc9cbe6e61e781940da6eda5f910d26720ef8ac73e25afe
# via -r src/backend/requirements.in
-opentelemetry-instrumentation-psycopg==0.63b1 \
- --hash=sha256:4d74ec2dda8e54ead9bd71f134af984792f77e1d8809591ae53edadddd4c8fc0 \
- --hash=sha256:86819f4cccea21a47920807826495797b7261cc1893c8e855415e76fb7b8e2e8
+opentelemetry-instrumentation-psycopg==0.64b0 \
+ --hash=sha256:a9835b8749db71a9c1e075ae81c084b1f370130341ceff6a231095f89f48a0c6 \
+ --hash=sha256:e9f41fad425183392d97068dbe2ce6e938514520312cfd7bf409242bd800c013
# via -r src/backend/requirements.in
-opentelemetry-instrumentation-pymysql==0.63b1 \
- --hash=sha256:2cf6a24e136b5b0c3f6e59675fc44b42ad2b97474b075a82859f9868a9252648 \
- --hash=sha256:6b54b83c86ac6c2e8dae642bbee4894e2283ceb5da23d571f1abb7060f7b62f4
+opentelemetry-instrumentation-pymysql==0.64b0 \
+ --hash=sha256:f5ab8399f7d8952b1622f9938d56604b51f51e7882f5058d7fd4fa3509c458f4 \
+ --hash=sha256:fc0da8eb158e0fb525f18e5be3bfa25dc0bc1d9e195c5fe31fbf919b55bd1a64
# via -r src/backend/requirements.in
-opentelemetry-instrumentation-redis==0.63b1 \
- --hash=sha256:28d235159df43cc2bc8779af5c602afad1e08603fff75ac8ca34dd1bf30a9cb9 \
- --hash=sha256:f0e51c4006f68e340abbf28a7995feff004de78649697cbdf3bac0072cacd082
+opentelemetry-instrumentation-redis==0.64b0 \
+ --hash=sha256:5458a541986f665b9d7e641421fa5d0c286f1813b452faab6f84503823719d52 \
+ --hash=sha256:c37e194c1e8ff59944d5c2f18014ee18f244a103958b1f2482099525ae9099f9
# via -r src/backend/requirements.in
-opentelemetry-instrumentation-requests==0.63b1 \
- --hash=sha256:513fcaa3d93debbdb359c00ce1a137a34a89ee908c51ac43beb7e8c18ac2b3cd \
- --hash=sha256:935c980a11e33bfd7ed969c741e4bd7c84077045651469f10e163534368d87f7
+opentelemetry-instrumentation-requests==0.64b0 \
+ --hash=sha256:8213a20b6578c41aa05cc5b48419aea75e1584924a4904dfcf36524597e7cc96 \
+ --hash=sha256:dcad4324ad97d785a5a3b9500acf3af3965b4c1d1b95776fa5e275b173d9541c
# via -r src/backend/requirements.in
-opentelemetry-instrumentation-sqlite3==0.63b1 \
- --hash=sha256:3d61afda8358dc32135fabd27e5934bd25ea0eed68d64c34508f24ba8d723efc \
- --hash=sha256:cc11c68cccde061dc8bcc5f80fe00bb0105a0fbb11b390859a23ca91ccd4e3b6
+opentelemetry-instrumentation-sqlite3==0.64b0 \
+ --hash=sha256:2d46810db20543a209c6568c8d1220859563bc4135cd6d00461ef70e446a0297 \
+ --hash=sha256:fc73cd28b7c77ddbec1d688113abe944805e9f085ff724729a8b7a4888efc3e7
# via -r src/backend/requirements.in
-opentelemetry-instrumentation-system-metrics==0.63b1 \
- --hash=sha256:995051f47876d79461aed8b7aa205d4584d90794ef864342cc748929c389bb42 \
- --hash=sha256:d6d4d7a1a854be4165143cf6420ee5894188762eb367d7bf9da5be4a83a4b632
+opentelemetry-instrumentation-system-metrics==0.64b0 \
+ --hash=sha256:38bc9c4ed4fccea2a68b1a43d57764649d1c3096927dc7244c5e7f173899044b \
+ --hash=sha256:ec8280693cdf6ea9020384c3fe884eea64a43ae78f1e2f6edc20951c871aac7e
# via -r src/backend/requirements.in
-opentelemetry-instrumentation-wsgi==0.63b1 \
- --hash=sha256:03d61c4678ce82402e7f37b6a3dbd84cb97b85b3cb416a78c2e74c7c6d9451fa \
- --hash=sha256:86779715262227d3436bdfb16aabd1c524b0f236725a69e8754ceda76c6d79dc
+opentelemetry-instrumentation-wsgi==0.64b0 \
+ --hash=sha256:1cce6ea28d1800c154e6ccdf52f05bae2f05c5e28ee44f0dddb17ada26208986 \
+ --hash=sha256:5a3b0174f39072c0abb749be4ae7e469c7585e87cdfaf63665657b1a7058c105
# via
# -r src/backend/requirements.in
# opentelemetry-instrumentation-django
-opentelemetry-proto==1.42.1 \
- --hash=sha256:c6a51e6b4f05ae63565f3a113217f3d2bfaec68f78c02d7a6c85f9010d1cfca6 \
- --hash=sha256:dedb74cba2886c59c7789b227a7a670613025a07489040050aedff6e5c0fb43c
+opentelemetry-proto==1.43.0 \
+ --hash=sha256:224778df17e1f3fafeaaa21d874236ca5f6ffc2f86e0899298ec7351aac27924 \
+ --hash=sha256:c58f1f7ef84bc7dc2834016c0c37fe0081dde7ca9f6339be1970fbf9cdaaa90d
# via
# opentelemetry-exporter-otlp-proto-common
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
-opentelemetry-sdk==1.42.1 \
- --hash=sha256:083cd4bbfaa5aa7b5a9e552430d9951219967cfb27aa61feb13a77aba1fc839d \
- --hash=sha256:8c834e8f8c9ba4171d4ec843d0cb8a67e4c7394d3f9e9297e582cbd9456ddbf7
+opentelemetry-sdk==1.43.0 \
+ --hash=sha256:d1323a547c1ce69d6a069a17a44b7da82bb8b332051ecb074041f87642c86823 \
+ --hash=sha256:d8187c81c162df9913e4003dd6485f7390d9a24fc17026ec7387b8b8218b08e9
# via
# -r src/backend/requirements.in
# opentelemetry-exporter-otlp-proto-grpc
# opentelemetry-exporter-otlp-proto-http
-opentelemetry-semantic-conventions==0.63b1 \
- --hash=sha256:3daf963611334b365e98a57438183eb012d3bfb40b2d931a9af613476b8701a9 \
- --hash=sha256:dfe5ef4dee82586b746f522b818ceb298d00b3d59f660042bd79404bff8d0682
+opentelemetry-semantic-conventions==0.64b0 \
+ --hash=sha256:72f76fb2d1582d9d033dd1fcd84532e961e6ff3d90d24ba6fabc72975a83864c \
+ --hash=sha256:ea77e85e354b8f604ddbe5f3d9135216f982fa4d77e5859ac30f6d8a50505aa6
# via
# opentelemetry-instrumentation
# opentelemetry-instrumentation-dbapi
@@ -1291,9 +1287,9 @@ opentelemetry-semantic-conventions==0.63b1 \
# opentelemetry-instrumentation-system-metrics
# opentelemetry-instrumentation-wsgi
# opentelemetry-sdk
-opentelemetry-util-http==0.63b1 \
- --hash=sha256:6284194028c59cd439f8acfe388145069a6127f11dc077e1344a2094adacc3f8 \
- --hash=sha256:ba1268f00922ee522dba2ae38458060f99486e7385a8056985901ca9685adfff
+opentelemetry-util-http==0.64b0 \
+ --hash=sha256:8a86a220dbfc56d736f47f1e5c4e7932a21fcf69052312e1bcf166444dc79322 \
+ --hash=sha256:c1e5350d25507c1afcd6076cf9ac062485a0a4f79cd9971366996fd3056bacdb
# via
# opentelemetry-instrumentation-django
# opentelemetry-instrumentation-requests
@@ -1427,21 +1423,19 @@ ppf-datamatrix==0.2 \
--hash=sha256:819be65eae444b760e178d5761853f78f8e5fca14fec2809b5e3369978fa9244 \
--hash=sha256:8f034d9c90e408f60f8b10a273baab81014c9a81c983dc1ebdc31d4ca5ac5582
# via -r src/backend/requirements.in
-prettytable==3.17.0 \
- --hash=sha256:59f2590776527f3c9e8cf9fe7b66dd215837cca96a9c39567414cbc632e8ddb0 \
- --hash=sha256:aad69b294ddbe3e1f95ef8886a060ed1666a0b83018bbf56295f6f226c43d287
+prettytable==3.18.0 \
+ --hash=sha256:439217116152244369caf3d9f1caf2f9fe29b03bd79e88d2928c8e718c95d680 \
+ --hash=sha256:b3346e0e6f79180833aebaac088ae926340586cf6d7d991b9eb125b65f72313a
# via pip-licenses
-protobuf==6.33.6 \
- --hash=sha256:0cd27b587afca21b7cfa59a74dcbd48a50f0a6400cfb59391340ad729d91d326 \
- --hash=sha256:77179e006c476e69bf8e8ce866640091ec42e1beb80b213c3900006ecfba6901 \
- --hash=sha256:7d29d9b65f8afef196f8334e80d6bc1d5d4adedb449971fefd3723824e6e77d3 \
- --hash=sha256:9720e6961b251bde64edfdab7d500725a2af5280f3f4c87e57c0208376aa8c3a \
- --hash=sha256:a6768d25248312c297558af96a9f9c929e8c4cee0659cb07e780731095f38135 \
- --hash=sha256:bd56799fb262994b2c2faa1799693c95cc2e22c62f56fb43af311cae45d26f0e \
- --hash=sha256:c96c37eec15086b79762ed265d59ab204dabc53056e3443e702d2681f4b39ce3 \
- --hash=sha256:e2afbae9b8e1825e3529f88d514754e094278bb95eadc0e199751cdd9a2e82a2 \
- --hash=sha256:e9db7e292e0ab79dd108d7f1a94fe31601ce1ee3f7b79e0692043423020b0593 \
- --hash=sha256:f443a394af5ed23672bc6c486be138628fbe5c651ccbc536873d7da23d1868cf
+protobuf==7.35.1 \
+ --hash=sha256:11d6b0ec246892d85215b0a13ca6e0233cf5284b68f0ac02646427f4ff88a799 \
+ --hash=sha256:230a75ddfc2de4806e56696ce9640c1cdfdb6543b7cfce98d42a4c0a0e7bdb87 \
+ --hash=sha256:24f857477359a85c0c235261b8ba905fd51b2562f4a64ca1df5473f29850cbf6 \
+ --hash=sha256:353652e4efd0bca5b5fc2656abf8307ef351f0cf938c9eba09f0e09c20a25c30 \
+ --hash=sha256:4bc97768d8fe4ad6743c8a19403e314511ed9f6d13205b687e52421c023ac1b9 \
+ --hash=sha256:74758715c53d7158fb76caf4f0cfdacc5329a4b1bb994f865d6cf302d413a1c4 \
+ --hash=sha256:b73f9489a4b8b1c9cb1f8ed951c736392592edb24b9d6819f36d2e10b171d5b4 \
+ --hash=sha256:ce115a26fe0c39a2c29973d914d327e516a6455464489fe3cd1e51a1b354f81a
# via
# googleapis-common-protos
# opentelemetry-proto
@@ -1513,9 +1507,9 @@ pynacl==1.6.2 \
--hash=sha256:d29bfe37e20e015a7d8b23cfc8bd6aa7909c92a1b8f41ee416bbb3e79ef182b2 \
--hash=sha256:fe9847ca47d287af41e82be1dd5e23023d3c31a951da134121ab02e42ac218c9
# via paramiko
-pypdf==6.13.3 \
- --hash=sha256:c6e3f86afb625791510b02ad5480e94b63970bb957df75d44657c282ecc52224 \
- --hash=sha256:f3cb822769725f1bac658c406cfc9460399043f3750c2d3e4650e0a85eacabd7
+pypdf==6.14.2 \
+ --hash=sha256:3f07891af76dc002657e04993ab9b4de81de29f9013b9761d0b7968bff12e946 \
+ --hash=sha256:7873f502fe4385e79539b21d872392dc0c4e3714327c15881cbc7fbfd1f95b25
# via -r src/backend/requirements.in
pyphen==0.17.2 \
--hash=sha256:3a07fb017cb2341e1d9ff31b8634efb1ae4dc4b130468c7c39dd3d32e7c3affd \
@@ -1722,9 +1716,9 @@ rapidfuzz==3.14.5 \
--hash=sha256:fbf1b8bb2695415b347f3727da1addca2acb82c9b97ac86bebf8b1bead1eb12d \
--hash=sha256:feedf219672eef83ea6be6f3bb093bba396a8560fc75be85ba225f082903df0a
# via -r src/backend/requirements.in
-redis==8.0.0 \
- --hash=sha256:a00c5355432051ac14e593b8b197fc76c887ee12d55a0984f69328a1115fdc49 \
- --hash=sha256:c938c18338585009f0bc310f4c7e4e4b4d37639356c4ac072cedf3af570c8dc7
+redis==8.0.1 \
+ --hash=sha256:47daa35a058c23468d6437f17a8c76882cb316b838ef763036af99b96cedd743 \
+ --hash=sha256:afc5a7a2f5a084f5b1880dec548dd45be17db7e43c82a30d84f952aefb05cfb0
# via django-redis
referencing==0.37.0 \
--hash=sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231 \
@@ -1929,7 +1923,6 @@ typing-extensions==4.15.0 \
--hash=sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548
# via
# django-redis
- # dulwich
# flexcache
# flexparser
# grpcio
@@ -1982,97 +1975,97 @@ whitenoise==6.12.0 \
--hash=sha256:f723ebb76a112e98816ff80fcea0a6c9b8ecde835f8ddda25df7a30a3c2db6ad \
--hash=sha256:fc5e8c572e33ebf24795b47b6a7da8da3c00cff2349f5b04c02f28d0cc5a3cc2
# via -r src/backend/requirements.in
-wrapt==2.2.1 \
- --hash=sha256:036dfb40128819a751c6f451c6b9c10172c49e4c401aebcdb8ecf2aec1683598 \
- --hash=sha256:03df9ebed4c73ab93fa8c07e3d41d818dfca1852b15731a3de59457b27814624 \
- --hash=sha256:05d5cb74d1b232ec8cfa130a8f900708699ff2491d97b8f85a4cdc5996294b85 \
- --hash=sha256:07be671fa8875971222b0ba9059ed8b4dc738631122feba17c93aa36b4213e9a \
- --hash=sha256:09ac16c081bebfd15d8e4dfa5bdc805990bbd52249ecff22530da7a129d6120b \
- --hash=sha256:0d9ff006f420b2ec8296aa56ade43ea7da3e997e85769f0aafc5e0661aacb710 \
- --hash=sha256:0f68f478004475d97906686e702ddbddeaf717c0b68ad2794384308f2dc713ae \
- --hash=sha256:17de18fc12cea55b8a9587314cb830573e37fb33b247a7515696350863714188 \
- --hash=sha256:1ae574d65c9fa8e86f64f6a7c2668f9fcd507b183e0e577619f504b883cb0a6c \
- --hash=sha256:1c9934ea5d92957e3cd0adbc0845539dccfd62710ebe16195a8c66c53954db36 \
- --hash=sha256:1d676ee388bc42a04d56dd7deb5605244dac2e35cc2fadbb43c9fa25bbd93508 \
- --hash=sha256:1ffa9cfd4bdb581539951b14ae661ff20ed0c3599b3e911a131ee0ec5ac11337 \
- --hash=sha256:2076d2335085eb09b9547e7688656fa8f5cf0183eab589d33499cd353489d797 \
- --hash=sha256:211f595f8e7faae5c5930fcc64708f2ba36849e0ba0fd653a843de9fa8d7db77 \
- --hash=sha256:24c52546acf2ab82412f2ab6fc5948a7fe958d3b4f070202e8dcdd865489eaf9 \
- --hash=sha256:2d83966dc7f4f45e8b97b5933685ac2e6e67fc0e19246ea314bceb9a8970c956 \
- --hash=sha256:2de9e20769fe9c1f6dcdc893c6a89287c5ccf8537c90b5de78aed8017697aad5 \
- --hash=sha256:2e08688ab16525897da6589d56d0aebaf417bbe91c2d8e3b96203b1efa596e85 \
- --hash=sha256:2f8c90c8afde51969487be4e1343ae049b268854877d415c2510baf833775052 \
- --hash=sha256:368eac1e20fd0bb03dd3cc42bf9887154c3861b60989389ccb5fac032617d215 \
- --hash=sha256:3aafea2975caef8ca49400640dde02cc7426e798f24870ed01f490bc3cffd32f \
- --hash=sha256:3e2f02472a1cbbf3884b365714a810b5947134a95ad6952b554cb8cce9d492b0 \
- --hash=sha256:3ffad790d9d11d8ecf9f17c4bb671a5b4089e4d8b575c46c5129597f41f836b0 \
- --hash=sha256:401229e9d63ca09f9b8891ecf83798d26c11bbb445d11ed9f1836b6d4585b38a \
- --hash=sha256:436addbc4bb4fc0a88c702577f51195d7d73683a7f3e0e5b253d8404d7847243 \
- --hash=sha256:44255c84bc57554fed822e83e70036b51afa9edb56fc7ca56c54410ece7898c9 \
- --hash=sha256:50972a1d974ea07725a7f6b1cec5f8759008afd030a0024843ebe7d52de47f2b \
- --hash=sha256:5590d63f5243251641cf543009b4c9314a79d0598fdb8a8e4cfc918494536c53 \
- --hash=sha256:585916e210db57b23543342c2f298e42331b617fd0c934caf5c64df44de8640e \
- --hash=sha256:5f1845c2a8cc1180ccccfa45785dd06f562730d19ef75be180334254012b6283 \
- --hash=sha256:5fa9bf3b9e66336589d03f42abce2da1055ad5c69b0c2b764852a8471c9b9114 \
- --hash=sha256:61a0013344674d2b648bc6e6fe9828dd4fc1d3b4eb7523809792f8cb952e2f16 \
- --hash=sha256:61acce4257a9883669703c525447c5b4c392edf0f987ae77ec32668440158f0e \
- --hash=sha256:628f5220c7a904d5fc78f7075c8d7871433eb6d035c94728a22fdf85f193d2a8 \
- --hash=sha256:64b7deeda4b70408e382328d8bbe52a256fe9bc63ae3db86d804608367e5422c \
- --hash=sha256:6744f504375775d7609c82c8d3d94af1c9a6f05586984536905908ba905277b9 \
- --hash=sha256:67a97e5b6c457f0cd3cfc19ebb2d84463e60c3ece754cc831e4281a3ca29bb18 \
- --hash=sha256:69f2e9244542cb34dd59c7f073445b9e54ad9f3fce8d93606c368a1b499fc413 \
- --hash=sha256:6ce32763ac31ce94fe9aada947e479b1975012bff166da409b4b9e4e376cf7e5 \
- --hash=sha256:6f56a647e4eaf5f0ca40330fb070f566bdf9f7b0db89a1af20d71c28dcd7a0ab \
- --hash=sha256:727ab4244622cd6ad2390f322642090c877d2e83a608d2653a7643ae5368d926 \
- --hash=sha256:74d6a0c31472fe5d814917266b9f46495d7c61ed890af08b468acea92fb89a8d \
- --hash=sha256:78b0aa6bfb7be8deed0ab23e7aa028cc5210c29bc2d32a04d52b50e517a7307e \
- --hash=sha256:7975bc88ab4b0f72ef2a2d5ae9d77d87efb5ef95e8f8046242fa9afdaaf2030b \
- --hash=sha256:7a4fdb9326aab4a5a477a1640e5ad786a8495901009d7e7b038371edd23a9d2b \
- --hash=sha256:844c858fc3bb7eacc0ba8efa904935d16aac6a4470948ad1e7e55c9f5a2a665f \
- --hash=sha256:87bacdaf225117a342a20d9c03438d701c02112f6e3f351ce9b7f32354f14797 \
- --hash=sha256:8a983a603a18c8708f024f7f6991b2e66159219abbf894634c5056243c55f3cd \
- --hash=sha256:8d1b4d0e0c2119587a31f5c029abd547e0c81d93b89d394566fe1588659eb579 \
- --hash=sha256:9011395be8db1827d106c6449b4bb6dd17e331ff6ec521f227e4588f1c78e46f \
- --hash=sha256:93fc2bf40cd7f4a0256010dce073d44eeb4a351b9bca94d0477ce2b6e62532b3 \
- --hash=sha256:95821352042722cd9f1108874579a47989d0a7e12a37d87d2fc4af20fd99ab8a \
- --hash=sha256:9907a4402ab6db12b7077a0ea5d7a4d028ecb22c8eee2b53527080d347cd1562 \
- --hash=sha256:9a04c28c10ba7fd12842b109d2edb0678872a2fe65277ca4ff06a0d61edee245 \
- --hash=sha256:9a5934eaea872e17936b5f45501eba5ab0bce9a74122e172b663d7c28c459c4a \
- --hash=sha256:9b984d1eb252145d6302c1dbd5e87fc6d404d45531447c84eadec04bf1fcb027 \
- --hash=sha256:9c210a6994b21aa9b29e81c8d11560e8fdab54c117e9cff37870d0a27bde1343 \
- --hash=sha256:9d8f204c8e3a8bf9ece17e0a83d137fd807440977f8a5e762d59306795011440 \
- --hash=sha256:a8f7176b83664af44567e9cc06e0d3827823fcc1a5e52307ebb8ac3aa95860b9 \
- --hash=sha256:a9dec1aca52dddde7df94818310fa2fe79739c8f385b2014c4cb1035f5508199 \
- --hash=sha256:ab5be648d5a0b86b7438864f8df3c705a65cef35a2fd3e5561e3e203167e0f27 \
- --hash=sha256:abd621552ede77c4c69be7fac44ba911225b0c812b6ba604e5964cf98085b474 \
- --hash=sha256:ac2745950b2bff80219c15ebf2fa9d8427eba7e249739f97e55c9d169e47e9e1 \
- --hash=sha256:aed9658797d0b45d6c49adcfc6b41f66e6f2d0c6de3ec79e16cf4b1855df240f \
- --hash=sha256:b6c0febfe38f22df2eb565c0ce8a092bb80411e56861ca382c443da83105423f \
- --hash=sha256:b9cf53ba90717db2e292401de290776c498d4bbfb0d4a559ca2895db8b9dcb5c \
- --hash=sha256:ba519b2d765df9871a25879e6f7fa78948ea59a2a31f9c1a257e34b651994afc \
- --hash=sha256:c318a64b53d97b841d7b5e637517e50a27be64bc695128422953d4b21710954e \
- --hash=sha256:c3723ff8eb8721f4daac98bc0256f15158e05316d5e52648ce9cebee434fbdd5 \
- --hash=sha256:c754dafdf5aaf0b401b644a90a30046929a0dd1a536e0ff0ec959a59155d9c7f \
- --hash=sha256:c803a3d331796255af51ba2c79ed0ac8275865b516c09e61f248d1e7aff31ce9 \
- --hash=sha256:c8cc5094b08abeae52da9c73c8a32003623be691a5193df2f4e3eac3d557c394 \
- --hash=sha256:cf3638274ab9d9b724c9baa0b4c04e132cd6faefb78b4dd3dd1a02a4bdaad41e \
- --hash=sha256:d047f6498c973874ba08ac3f97c69a2c4b2211c8de6f4c205f75cb1c9522596e \
- --hash=sha256:d2beb1c7cab10603aecdc42f8edd6ff013f9a32e4543474e38e6b77ce9975aeb \
- --hash=sha256:d7f513d3185e6fec82d0c3518f2e6365d8b4e49f5f45f29640d5162d56a23b54 \
- --hash=sha256:dd57607acc85678925940bd5df0385ff8332083a32fa8d7a43f8767f4997263c \
- --hash=sha256:e0cb7e4dd71f4c32e5e84843cd3c4cd65dda034314004bbe1d7f99af2426ab80 \
- --hash=sha256:e3677c7146ce694874941ba82b57092cc4875445aadf29d72807351023105143 \
- --hash=sha256:e395f7bc31851ef9b612050368cb446e9bc14cd7454b025018980349caf25ae5 \
- --hash=sha256:e422b2d647a65d6b080cad5accd09055d3809bdff00c76fba8dca00ca935572a \
- --hash=sha256:ed55af48b3eb28f43228ca2306788892bcb629eb2b5c4876e2a3659872c2f17a \
- --hash=sha256:ed928d0fda15fc0adc8d13305c8b3c0f2fba5b0669950c9e6d019d9162a3b3e8 \
- --hash=sha256:f4e1a92032a39cd5e3c647ca57dbf33b6a1938fd975623175793f9dbb63236de \
- --hash=sha256:f53ac9f3ef573326d009ed809beff4efcac6451931c2b8132586da4b9e53ff31 \
- --hash=sha256:f5b9daf6b629fce418e0cc3dd0436eac045188fa35deadb7a7f3941d5b8203f9 \
- --hash=sha256:f6518b94edb9150452e9aba08027d4cc293433753ec1fbefb4629a21cbc74181 \
- --hash=sha256:f70db64e8266d7c45d3b735f2e08eeb434b5e03da9a479ae42b2e2e486a21a00 \
- --hash=sha256:fafb4e739e43544d12cb4abd1605fd4683b6ca6a9ad682b7fd8f4d21973eafa8 \
- --hash=sha256:fd0135d34387f5fd087d9be368ea77ea89cf2451dc1cd1c622d35021bcb3ab50
+wrapt==2.2.2 \
+ --hash=sha256:0065a3b657cec06813b4241d2462ccec287f6863103d7445b725fb3a889736f9 \
+ --hash=sha256:055e6fcfaa28e58c6a8c247d48b92be9d56f818b7068aa4f22b15b3343a09931 \
+ --hash=sha256:0788e321027c999bf221b667bd4a54aaefd1a36283749a860ac3eb77daed0302 \
+ --hash=sha256:07fdcb012821859168641acf68afad61ef9783cf37100af85f152550e9677194 \
+ --hash=sha256:09f811d43f6f33ec7515f0be76b159569f4057ab54d3e079c3204dddb90afa2a \
+ --hash=sha256:0abfd648dac9ac9c5b3aa9b523d27f1789046640b58dcd5652a720ddb325e1fc \
+ --hash=sha256:0ad520e6daa9bbf136f14de735474dbec7dcc0891f718e1d274ce8dc92e645af \
+ --hash=sha256:0e64826f920c42d9d9f87e8cc09ffae66c51ede12d59061a5a426deb9aa71745 \
+ --hash=sha256:0e7070c7472582e31af3dfc2622b2381a0df7435110a9388ed8db5ffbce67efb \
+ --hash=sha256:10adb01371408c6de504a6658b9886480f1a4919a83752748a387a504a21df79 \
+ --hash=sha256:11d95fc2fbad3163596c39d440e6f21ca9fccece74b56e30a37ac2fca786a07c \
+ --hash=sha256:173e5bb5ca350a6e0abab60b7ec7cdd7992a814cb14b4de670a28f067f105663 \
+ --hash=sha256:1fc7691f070220215cccb2a20836b9adbaecb8ff22ad47abe63de5f110994fac \
+ --hash=sha256:209112cafd963710a05d199aae431d79a28bc76eb8e6d1bbbb8ad24340722cae \
+ --hash=sha256:2252f77663651b89255895f58cc6ac08fcb206d4371813e5af61bb62d4f7689c \
+ --hash=sha256:25904acb9475f46c24fe0423dbc8fda8cc5fbc282ab3dc6e72e919748c53f4e9 \
+ --hash=sha256:26fc73a1b15e0946d2942b9a4426d162b51676338327dc067ccd8d2d76385f94 \
+ --hash=sha256:2cb07f414fab25dbe6b5c7398e1491423a5c81a6209533639969a6c928d474a4 \
+ --hash=sha256:2cd7181ab1c31192ff5219269830744b5a62020b3a6d433588c4f1c95b8f8bff \
+ --hash=sha256:2e096c9d39a59b35b63c9aacfbbbec2088ff51ff1fc31051acc60a07f42f273a \
+ --hash=sha256:305d4c247d61c4115794a169141823c62f719525ddb90b23aa332741c77d2c28 \
+ --hash=sha256:30f7424af5c5c345b7f26490e097f74a2ef45b3d08b664dc33571aee3bd3b56c \
+ --hash=sha256:3179a4db066b53d40562e368b12895440c8f0953b6543b89d6acc41c0273996e \
+ --hash=sha256:3442eee2a5798f9b451f1b2cd7518ce8b7e28a2a364696c414460a0e295c012a \
+ --hash=sha256:385cb1866f20479e83299af585375bfa0a4b0c6c9907a981483ea782ea8ae406 \
+ --hash=sha256:3a4eb7964ff4643d333c84f880bcf554652b2a1050aebc54ae696327f61acfaf \
+ --hash=sha256:3b686cfc008776a3952d6213cb296ed7f45d782a8453936406faa89eac0835ab \
+ --hash=sha256:3c4095803491f6ef72128914c28ec05bbad9758433bb35f6715a3e9c8e46fb2d \
+ --hash=sha256:3dc3dcfc2da95d501905f10dc11a0dc622e91d8cdd8bbfcb63ca54afd131e556 \
+ --hash=sha256:4250b43d1a129d947e083c4dc6baf333c9bb34edd26f912d5b0457841fc858ab \
+ --hash=sha256:4402f57c5f0d0579599858ffbdd9bf4e3f0972f51096f2bd6cc7dab6b76ee49e \
+ --hash=sha256:45c2f2768e790c9f8db90f239ef23a2af8e7570f25a35619ef902df4a738447f \
+ --hash=sha256:4b481fb0c40d9fd90a5809911208da700987d373a20a4709dc9e3944af7a6bec \
+ --hash=sha256:4bccea5cdecffa9dd70e343741f0e41e0a16619313d04b72f78bb525162ebcd0 \
+ --hash=sha256:518b0c5e323511ec56a38894802ddd5e1222626484e68efe63f201854ad788e5 \
+ --hash=sha256:5499236ad1dc116012e2a5dd943f3f31af12fce452128e2bbcbd55a7d3d4d14c \
+ --hash=sha256:55b9a899e6fff5444f229d30aa6e9ac92d2216d9d60f33c771b5d76a760d5f8e \
+ --hash=sha256:58f9f8d637c9a6e245c6ef5b109b67ec187d2faed23d1405656b51d96e0a5b56 \
+ --hash=sha256:5bad217350f19ce99ca5b5e71d406765ea86fe541628426772b657375ee1c048 \
+ --hash=sha256:5d0a142f7af07caeb5e5da87493162a7b8efa19ba919e550a746f7446e13fb30 \
+ --hash=sha256:62415fd095bc590b842b6d092f2b5d9ccbaeb7e0b28535c03dcea2718b48636b \
+ --hash=sha256:656593bb3f5529f03d27af4136c4d7b11990e470bcbc6fefa5ef218695bece55 \
+ --hash=sha256:6c99012a22f735a85eed7c4b86a3e99c30fdd57d9e115b2b45f796264b58d0bf \
+ --hash=sha256:6d1a6050405bf334be33bf66296f113563622972a34900ae6fa60fd283a1a900 \
+ --hash=sha256:6e7e45b43d3c774d244fe7264378f5a3f0f383bc55a54a9866434e524540110f \
+ --hash=sha256:6fe35fd51b74867d8b80174c277bd6bbf6a73e443f908129dc531c4b688a20d5 \
+ --hash=sha256:7d2f6573561fa05002e5ee71529f4ab0a7dffed3e45b51013fe6298fe2723c02 \
+ --hash=sha256:814f1bf3e0a7035f67a1db0cdaf5e2bbcaa4d7092db96673cfa467adeaab8591 \
+ --hash=sha256:8374eb6b1a58809211e84ff835a182bb17ab2807a5bfef23204c8cff38178a00 \
+ --hash=sha256:8417fd3c674d3c8023d080292d29301531a12daf8bd938dd419710dd2f464f2b \
+ --hash=sha256:8636809939152be6ae20a6cef0fed9fe60f411b47847d0426a826884b469e971 \
+ --hash=sha256:8ffbeaea6771a6eba6e6eeb09767864995726bc8240bb54baf88a9bb1db34d5c \
+ --hash=sha256:94b00b00f806eb3ef2abe9049ed45994a81ee9284884d96e6b8314927c6cea3d \
+ --hash=sha256:955f1d6e72a352e478de8d8b503abe301c5e139a141b62eb0923bd694995025f \
+ --hash=sha256:9e8b648270c613720a202d9a45ebabc33261b22c3a839b115ac5bce8c0bb0d69 \
+ --hash=sha256:9ee098171b07edba66ab69a9bf0251d3cbef654107e800feb24c0c6f30592728 \
+ --hash=sha256:a28287413351cb198b8c5ddd045c56fac1d195808642cd264d1ab50426146650 \
+ --hash=sha256:a2d78c363f97d8bd718ee40432c66395685e9e98528ccaa423c3355d1715a26d \
+ --hash=sha256:a41e758d80dc0ab8c210f641ac892009d356cf1f955d97db544c8dd317b4d14c \
+ --hash=sha256:a795d3c06e5fbf9ea2f13196180b77aeab1b4685917256ee0d014cc163d90063 \
+ --hash=sha256:aa14b01804bce36c6d63d7b6a4f55df390f29f8648cc13a1f40b166f4d54680d \
+ --hash=sha256:abf033b7e4542357659cd83ed6cd5033c43aaa1887044045ceb571528837f72f \
+ --hash=sha256:abf8c20a2d72ee69e16328b3c91342c446e723bfe48bfcc4dded3b9722ac027f \
+ --hash=sha256:b84cd4058001c9727b0e9980b7a9e66325b5ca748b1b578e822cade1bc6b304f \
+ --hash=sha256:b89d8d73c82db2bb7e6090b3afd7973f980d24e905cc34394eab60b884b3bf67 \
+ --hash=sha256:bbf00ee0cb55ec24e2b0995a71942b85b21a066db8f3f46e1dbfdb9433ffba81 \
+ --hash=sha256:c20279cd1a29800815d7b2d6338b60a6c6e78263f9d6e62e0eda251ba9cae2d0 \
+ --hash=sha256:c38510a21d5b9cf3e84c460d909e9f2a098667439fd42841bb081cab45835d68 \
+ --hash=sha256:c427c9d06d859848a69f0d928fe28b5c33a941b2265d10a0e1f15cd244f1ee33 \
+ --hash=sha256:c5d7825491bfa2d08b97e9557768987952c7b9ae687d06c3320b40a37ccb7f20 \
+ --hash=sha256:c6c64c5d02578bc4c4bca4f0aef1504de933c1d5b4ac2710b9131111459506c8 \
+ --hash=sha256:cd385a48b055bdc3630ab30e0c7fd8514a36904ec23f9cee7a65d887334a3cea \
+ --hash=sha256:d01d8e0afc55823245a3b97a79c7c77464e31ea7a7b629a4bf26f9441dc1f18e \
+ --hash=sha256:d09db0f7e8357060d3c38fc22a018aba683a796bf184360fd1a58f6fc180dc77 \
+ --hash=sha256:d619e1eed9bd4f6ed9f24cd61971aa086fa86505289628d464bcf8a2c2e3f328 \
+ --hash=sha256:d8a15813215f33fa83667bfc978b300e35669ea8bb424e970a1426bcb7bc6cca \
+ --hash=sha256:dcaa5e1451bd8751d7bd1568dfa3321c78092a52a7ecb5d1a0f18a5791e1fd00 \
+ --hash=sha256:dfb00cb7bb22099e2f64b7340fb96113639aa7260c0972af3797ace2297b936c \
+ --hash=sha256:e542b7c5af91e2123a8aabf19894319d5ec4268d2a9ffd2f239386133fc47746 \
+ --hash=sha256:e5a5290e4bf2f332fc29ce72ffb9a2fff678aaac047e2e9f5f7165cd7792e099 \
+ --hash=sha256:e6fb7e94e8fe3e4c3067bb1653a91cce7c5e83acc119fdd41501b1bf74654617 \
+ --hash=sha256:e7f10ee0bd53673bfd52b67cbce83336fe6cad90d2377b03baf66491d2bbfb91 \
+ --hash=sha256:ec8f83949028366531383603139403cac7a826e4011955813cdd640017845ce5 \
+ --hash=sha256:ef2cce266b5b0b07e19fa82e59673b81142b7a3607c8ed1254113d048ed668da \
+ --hash=sha256:f1a2ff355ece6a111ca7a20dc86df6659c9205d3fcee674ca34f2a2854fd4e73 \
+ --hash=sha256:f32fe639c39561ccc187bcae17e9271be0eb45f1c2952510d2f29b33ab577347 \
+ --hash=sha256:f4bfd8d1eb438153eff8b8cfe87f032ba65731e1ce06138b5090f745a33f6f95 \
+ --hash=sha256:f90038ab58fafb584801ca62d72384d7d5225d93c76f7b773c22fae545bd8066 \
+ --hash=sha256:fa81c5b5fe8cd6c41e3a798533b81288279e5fdbde2128f21071922764281c99 \
+ --hash=sha256:fb18fc51e813df0d9c98049e3bf2298a5495a648602040e21fa3c7329371159e
# via
# opentelemetry-instrumentation
# opentelemetry-instrumentation-dbapi
@@ -2141,9 +2134,7 @@ xmlsec==1.3.17 \
--hash=sha256:ed63cbd87dd69ebcf3a9f82d87b67818c9a7d656325dd4fb34d6c4dfbaa84017 \
--hash=sha256:eee89c268a35f8a08a8e9abef6f466b97577e94f5cac8bf32c25e97cd5020097 \
--hash=sha256:f3fac9ae679f66585925cc00c5f6839ae36c1d03157619571dee18acc05b9c01
- # via
- # -r src/backend/requirements.in
- # python3-saml
+ # via python3-saml
zopfli==0.4.3 \
--hash=sha256:0087c9a6f0c8a052be0f6d1a9bb71b6caffdd3e10201d6d6166e28d482cebe6d \
--hash=sha256:47604eee5c6704bdf0e94d8391fe3b74ddb2abd84128fbcfdc3ee0fc265feaef \
diff --git a/src/frontend/netlify.toml b/src/frontend/netlify.toml
index 6d012187e9..8af67796dd 100644
--- a/src/frontend/netlify.toml
+++ b/src/frontend/netlify.toml
@@ -7,7 +7,7 @@
[build.environment]
VITE_DEMO = "true"
- PYTHON_VERSION = "3.11"
+ PYTHON_VERSION = "3.12"
# Send requests to subpath
diff --git a/src/frontend/package.json b/src/frontend/package.json
index 10e1d887c8..8c1bf2e93e 100644
--- a/src/frontend/package.json
+++ b/src/frontend/package.json
@@ -134,7 +134,7 @@
"rollup": "^4.61.1",
"rollup-plugin-license": "^3.7.1",
"typescript": "^5.9.3",
- "vite": "^6.4.2",
+ "vite": "^7.0.0",
"vite-plugin-babel-macros": "^1.0.6",
"vite-plugin-dts": "^5.0.2",
"vite-plugin-externals": "^0.6.2",
@@ -142,6 +142,8 @@
},
"resolutions": {
"undici": "^6.24.0",
- "vite": "^6.4.2"
+ "vite": "^7",
+ "js-yaml": "^4",
+ "esbuild": "^0.28"
}
}
diff --git a/src/frontend/src/components/wizards/OrderPartsWizard.tsx b/src/frontend/src/components/wizards/OrderPartsWizard.tsx
index e026cae9fb..9db57a0eb3 100644
--- a/src/frontend/src/components/wizards/OrderPartsWizard.tsx
+++ b/src/frontend/src/components/wizards/OrderPartsWizard.tsx
@@ -306,12 +306,17 @@ function SelectPartsStep({
placeholder: t`Select supplier part`,
required: true,
autoFill: true,
+ autoFillFilters: {
+ active: true,
+ primary: true
+ },
value: record.supplier_part?.pk,
onValueChange: (value, instance) => {
onSelectSupplierPart(record.part.pk, instance);
},
filters: {
part: record.part.pk,
+ ordering: '-primary',
active: true,
part_detail: true,
supplier_detail: true
diff --git a/src/frontend/src/contexts/colorSchema.tsx b/src/frontend/src/contexts/colorSchema.tsx
index 131e9da8e4..a2a734a8ce 100644
--- a/src/frontend/src/contexts/colorSchema.tsx
+++ b/src/frontend/src/contexts/colorSchema.tsx
@@ -1,5 +1,4 @@
import {
- type MantineColorScheme,
type MantineColorSchemeManager,
isMantineColorScheme
} from '@mantine/core';
@@ -21,10 +20,18 @@ export function localStorageColorSchemeManager({
}
try {
- return (
- (window.localStorage.getItem(key) as MantineColorScheme) ||
- defaultValue
- );
+ const storedValue = window.localStorage.getItem(key);
+
+ // If a value exists in storage, return it
+ if (storedValue && isMantineColorScheme(storedValue)) {
+ return storedValue;
+ }
+
+ // If no value, check the system preference
+ const systemPrefersDark = window.matchMedia(
+ '(prefers-color-scheme: dark)'
+ ).matches;
+ return systemPrefersDark ? 'dark' : 'light';
} catch {
return defaultValue;
}
diff --git a/src/frontend/src/forms/BuildForms.tsx b/src/frontend/src/forms/BuildForms.tsx
index 3fd3acbc41..2ff3c0bd53 100644
--- a/src/frontend/src/forms/BuildForms.tsx
+++ b/src/frontend/src/forms/BuildForms.tsx
@@ -5,7 +5,6 @@ import {
IconCircleCheck,
IconInfoCircle,
IconLink,
- IconList,
IconSitemap,
IconTruckDelivery,
IconUsersGroup
@@ -36,7 +35,7 @@ import {
} from '../hooks/UseGenerator';
import { useGlobalSettingsState } from '../states/SettingsStates';
import { RenderPartColumn } from '../tables/ColumnRenderers';
-import { TagsField } from './CommonFields';
+import { ProjectCodeField, TagsField } from './CommonFields';
/**
* Field set for BuildOrder forms
@@ -93,9 +92,7 @@ export function useBuildOrderFields({
},
title: {},
quantity: {},
- project_code: {
- icon:
- },
+ project_code: ProjectCodeField(),
priority: {},
parent: {
icon: ,
diff --git a/src/frontend/src/forms/CommonFields.tsx b/src/frontend/src/forms/CommonFields.tsx
index 9fcd5fd25b..07f16e0bb9 100644
--- a/src/frontend/src/forms/CommonFields.tsx
+++ b/src/frontend/src/forms/CommonFields.tsx
@@ -1,5 +1,6 @@
import type { ApiFormFieldType } from '@lib/types/Forms';
import { t } from '@lingui/core/macro';
+import { IconList } from '@tabler/icons-react';
export function TagsField({
label,
@@ -17,3 +18,14 @@ export function TagsField({
placeholder: placeholder ?? t`Select tags`
};
}
+
+export function ProjectCodeField(): ApiFormFieldType {
+ return {
+ filters: {
+ active: true
+ },
+ label: t`Project Code`,
+ description: t`Select project code for this item`,
+ icon:
+ };
+}
diff --git a/src/frontend/src/forms/CommonForms.tsx b/src/frontend/src/forms/CommonForms.tsx
index fc3ad49135..3bd64bc0d0 100644
--- a/src/frontend/src/forms/CommonForms.tsx
+++ b/src/frontend/src/forms/CommonForms.tsx
@@ -5,7 +5,6 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { ModelType } from '@lib/enums/ModelType';
import { apiUrl } from '@lib/functions/Api';
import type { ApiFormFieldSet, ApiFormFieldType } from '@lib/types/Forms';
-import { t } from '@lingui/core/macro';
import type {
StatusCodeInterface,
StatusCodeListInterface
@@ -13,6 +12,7 @@ import type {
import { useApi } from '../contexts/ApiContext';
import { useGlobalStatusState } from '../states/GlobalStatusState';
import { useUserState } from '../states/UserState';
+import { ProjectCodeField } from './CommonFields';
export function projectCodeFields(): ApiFormFieldSet {
return {
@@ -20,7 +20,8 @@ export function projectCodeFields(): ApiFormFieldSet {
description: {},
responsible: {
icon:
- }
+ },
+ active: {}
};
}
@@ -90,9 +91,7 @@ export function extraLineItemFields(): ApiFormFieldSet {
quantity: {},
price: {},
price_currency: {},
- project_code: {
- description: t`Select project code for this line item`
- },
+ project_code: ProjectCodeField(),
notes: {},
link: {}
};
diff --git a/src/frontend/src/forms/PurchaseOrderForms.tsx b/src/frontend/src/forms/PurchaseOrderForms.tsx
index 4faf5756ad..3dce873eb6 100644
--- a/src/frontend/src/forms/PurchaseOrderForms.tsx
+++ b/src/frontend/src/forms/PurchaseOrderForms.tsx
@@ -20,7 +20,6 @@ import {
IconHash,
IconInfoCircle,
IconLink,
- IconList,
IconNotes,
IconSitemap,
IconUser,
@@ -57,7 +56,7 @@ import {
useSerialNumberGenerator
} from '../hooks/UseGenerator';
import { useGlobalSettingsState } from '../states/SettingsStates';
-import { TagsField } from './CommonFields';
+import { ProjectCodeField, TagsField } from './CommonFields';
/*
* Construct a set of fields for creating / editing a PurchaseOrderLineItem instance
*/
@@ -191,9 +190,7 @@ export function usePurchaseOrderLineItemFields({
value: autoPricing,
onValueChange: setAutoPricing
},
- project_code: {
- description: t`Select project code for this line item`
- },
+ project_code: ProjectCodeField(),
target_date: {
icon:
},
@@ -271,9 +268,7 @@ export function usePurchaseOrderFields({
}
},
supplier_reference: {},
- project_code: {
- icon:
- },
+ project_code: ProjectCodeField(),
order_currency: {
icon:
},
diff --git a/src/frontend/src/forms/ReturnOrderForms.tsx b/src/frontend/src/forms/ReturnOrderForms.tsx
index ea919f5da7..3377ff1f22 100644
--- a/src/frontend/src/forms/ReturnOrderForms.tsx
+++ b/src/frontend/src/forms/ReturnOrderForms.tsx
@@ -23,7 +23,7 @@ import { Thumbnail } from '../components/images/Thumbnail';
import { useCreateApiFormModal } from '../hooks/UseForm';
import { useGlobalSettingsState } from '../states/SettingsStates';
import { StatusFilterOptions } from '../tables/Filter';
-import { TagsField } from './CommonFields';
+import { ProjectCodeField, TagsField } from './CommonFields';
export function useReturnOrderFields({
duplicateOrderId
@@ -44,7 +44,7 @@ export function useReturnOrderFields({
}
},
customer_reference: {},
- project_code: {},
+ project_code: ProjectCodeField(),
order_currency: {},
start_date: {
icon:
@@ -138,9 +138,7 @@ export function useReturnOrderLineItemFields({
},
price: {},
price_currency: {},
- project_code: {
- description: t`Select project code for this line item`
- },
+ project_code: ProjectCodeField(),
target_date: {},
notes: {},
link: {}
diff --git a/src/frontend/src/forms/SalesOrderForms.tsx b/src/frontend/src/forms/SalesOrderForms.tsx
index 125ca7f894..a863a51852 100644
--- a/src/frontend/src/forms/SalesOrderForms.tsx
+++ b/src/frontend/src/forms/SalesOrderForms.tsx
@@ -31,7 +31,7 @@ import { useCreateApiFormModal, useEditApiFormModal } from '../hooks/UseForm';
import { useGlobalSettingsState } from '../states/SettingsStates';
import { useUserState } from '../states/UserState';
import { RenderPartColumn } from '../tables/ColumnRenderers';
-import { TagsField } from './CommonFields';
+import { ProjectCodeField, TagsField } from './CommonFields';
export function useSalesOrderFields({
duplicateOrderId
@@ -57,7 +57,7 @@ export function useSalesOrderFields({
}
},
customer_reference: {},
- project_code: {},
+ project_code: ProjectCodeField(),
order_currency: {},
start_date: {
icon:
@@ -194,9 +194,7 @@ export function useSalesOrderLineItemFields({
value: partCurrency,
onValueChange: setPartCurrency
},
- project_code: {
- description: t`Select project code for this line item`
- },
+ project_code: ProjectCodeField(),
target_date: {},
notes: {},
link: {}
diff --git a/src/frontend/src/forms/StockForms.tsx b/src/frontend/src/forms/StockForms.tsx
index 99255cf0d5..a0de3608b2 100644
--- a/src/frontend/src/forms/StockForms.tsx
+++ b/src/frontend/src/forms/StockForms.tsx
@@ -33,8 +33,16 @@ import {
IconUsersGroup
} from '@tabler/icons-react';
import { useQuery, useSuspenseQuery } from '@tanstack/react-query';
+
import dayjs from 'dayjs';
-import { type JSX, Suspense, useEffect, useMemo, useState } from 'react';
+import {
+ type JSX,
+ Suspense,
+ useCallback,
+ useEffect,
+ useMemo,
+ useState
+} from 'react';
import { useFormContext } from 'react-hook-form';
import { useNavigate } from 'react-router-dom';
import { api } from '../App';
@@ -566,6 +574,7 @@ function StockOperationsRow({
add = false,
setMax = false,
merge = false,
+ transferMerge = false,
returnStock = false,
record
}: {
@@ -575,6 +584,7 @@ function StockOperationsRow({
add?: boolean;
setMax?: boolean;
merge?: boolean;
+ transferMerge?: boolean;
returnStock?: boolean;
record?: any;
}) {
@@ -742,6 +752,17 @@ function StockOperationsRow({
variant={packagingOpen ? 'filled' : 'transparent'}
/>
)}
+ {transferMerge && (
+ }
+ tooltip={t`Merge into existing stock`}
+ onClick={() =>
+ callChangeFn(props.idx, 'merge', !props.item?.merge)
+ }
+ variant={props.item?.merge ? 'filled' : 'transparent'}
+ />
+ )}
props.removeFn(props.idx)} />
@@ -789,9 +810,10 @@ type StockAdjustmentItem = {
batch?: string;
status?: number | '' | null;
packaging?: string;
+ merge?: boolean;
};
-function mapAdjustmentItems(items: any[]) {
+function mapAdjustmentItems(items: any[], mergeDefault?: boolean) {
const mappedItems: StockAdjustmentItemWithRecord[] = items.map((elem) => {
return {
pk: elem.pk,
@@ -799,6 +821,7 @@ function mapAdjustmentItems(items: any[]) {
batch: elem.batch || undefined,
status: elem.status || undefined,
packaging: elem.packaging || undefined,
+ merge: elem.merge ?? mergeDefault ?? false,
obj: elem
};
});
@@ -806,7 +829,10 @@ function mapAdjustmentItems(items: any[]) {
return mappedItems;
}
-function stockTransferFields(items: any[]): ApiFormFieldSet {
+function stockTransferFields(
+ items: any[],
+ mergeDefault = false
+): ApiFormFieldSet {
if (!items) {
return {};
}
@@ -819,7 +845,7 @@ function stockTransferFields(items: any[]): ApiFormFieldSet {
const fields: ApiFormFieldSet = {
items: {
field_type: 'table',
- value: mapAdjustmentItems(items),
+ value: mapAdjustmentItems(items, mergeDefault),
modelRenderer: (row: TableFieldRowProps) => {
const record = records[row.item.pk];
@@ -829,6 +855,7 @@ function stockTransferFields(items: any[]): ApiFormFieldSet {
transfer
changeStatus
setMax
+ transferMerge
key={record.pk}
record={record}
/>
@@ -1379,9 +1406,20 @@ export function useRemoveStockItem(props: StockOperationProps) {
}
export function useTransferStockItem(props: StockOperationProps) {
+ const globalSettings = useGlobalSettingsState();
+
+ const fieldGenerator = useCallback(
+ (items: any[]) =>
+ stockTransferFields(
+ items,
+ globalSettings.isSet('STOCK_MERGE_ON_TRANSFER')
+ ),
+ [globalSettings]
+ );
+
return useStockOperationModal({
...props,
- fieldGenerator: stockTransferFields,
+ fieldGenerator: fieldGenerator,
endpoint: ApiEndpoints.stock_transfer,
title: t`Transfer Stock`,
successMessage: t`Stock transferred`,
diff --git a/src/frontend/src/forms/TransferOrderForms.tsx b/src/frontend/src/forms/TransferOrderForms.tsx
index 3935d89b92..638028603d 100644
--- a/src/frontend/src/forms/TransferOrderForms.tsx
+++ b/src/frontend/src/forms/TransferOrderForms.tsx
@@ -10,7 +10,7 @@ import type { TableFieldRowProps } from '../components/forms/fields/TableField';
import { useCreateApiFormModal } from '../hooks/UseForm';
import { useGlobalSettingsState } from '../states/SettingsStates';
import { RenderPartColumn } from '../tables/ColumnRenderers';
-import { TagsField } from './CommonFields';
+import { ProjectCodeField, TagsField } from './CommonFields';
export function useTransferOrderFields({
duplicateOrderId
@@ -23,7 +23,7 @@ export function useTransferOrderFields({
const fields: ApiFormFieldSet = {
reference: {},
description: {},
- project_code: {},
+ project_code: ProjectCodeField(),
start_date: {
icon:
},
@@ -91,9 +91,7 @@ export function useTransferOrderLineItemFields({
},
reference: {},
quantity: {},
- project_code: {
- description: t`Select project code for this line item`
- },
+ project_code: ProjectCodeField(),
target_date: {},
notes: {},
link: {}
diff --git a/src/frontend/src/functions/auth.tsx b/src/frontend/src/functions/auth.tsx
index 6f541f049c..2c940df733 100644
--- a/src/frontend/src/functions/auth.tsx
+++ b/src/frontend/src/functions/auth.tsx
@@ -131,7 +131,9 @@ export async function doBasicLogin(
default:
notifications.show({
title: `${t`Login failed`} (${err.response.status})`,
- message: t`Check your input and try again.`,
+ message:
+ err.response?.data?.detail ??
+ t`Check your input and try again.`,
id: 'auth-login-error',
color: 'red'
});
diff --git a/src/frontend/src/locales/ar/messages.po b/src/frontend/src/locales/ar/messages.po
index feb3621dce..0fa8bb7db9 100644
--- a/src/frontend/src/locales/ar/messages.po
+++ b/src/frontend/src/locales/ar/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ar\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Arabic\n"
"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5);\n"
@@ -79,12 +79,12 @@ msgstr "إلغاء"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "الإجراءات"
@@ -135,19 +135,19 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr ""
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr ""
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr ""
@@ -261,7 +261,7 @@ msgstr ""
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr ""
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr ""
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr ""
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr ""
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr ""
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr ""
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr ""
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr ""
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr ""
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/bg/messages.po b/src/frontend/src/locales/bg/messages.po
index 203d17609a..3d8991e8e5 100644
--- a/src/frontend/src/locales/bg/messages.po
+++ b/src/frontend/src/locales/bg/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: bg\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Bulgarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr ""
@@ -135,19 +135,19 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr ""
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr ""
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr ""
@@ -261,7 +261,7 @@ msgstr ""
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr ""
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr ""
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr ""
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr ""
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr ""
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr ""
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr ""
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr ""
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr ""
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/cs/messages.po b/src/frontend/src/locales/cs/messages.po
index dda16096d3..2869ebe8e3 100644
--- a/src/frontend/src/locales/cs/messages.po
+++ b/src/frontend/src/locales/cs/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: cs\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -79,12 +79,12 @@ msgstr "Zrušit"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Akce"
@@ -135,19 +135,19 @@ msgstr "Ne"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Díl"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Díly"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Díly výrobce"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Kategorie dílu"
@@ -261,7 +261,7 @@ msgstr "Kategorie dílů"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Skladové položky"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Umístění skladu"
@@ -328,7 +328,7 @@ msgstr "Výrobní příkaz"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Kódy projektu"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Objednávka"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Prodejní objednávka"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Vrácená objednávka"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr "Převodní příkaz"
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr "Výběr záznamů"
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "Vypršel časový limit žádosti."
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Proces se nezdařil"
@@ -1391,11 +1392,11 @@ msgstr "Vyžadováno aministrátorské oprávnění"
msgid "This widget requires superuser permissions"
msgstr "Tento widget vyžaduje administrátorské oprávnění "
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Žádné novinky"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Žádné nepřečtené novinky"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Odstranit přidružený obrázek z této položky?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Kód"
msgid "Error rendering preview"
msgstr "Chyba při vykreslování náhledu"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Náhled není k dispozici, klikněte na \"Znovu načíst náhled\"."
@@ -1728,11 +1729,11 @@ msgstr "Uložit aktuální šablonu a znovu načíst náhled"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Vyberte instanci pro náhled"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Chyba při načítání šablony"
@@ -1829,20 +1830,20 @@ msgstr "Přihlášení proběhlo úspěšně"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Přihlášení se nezdařilo"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Zkontrolujte vstup a zkuste to znovu."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "E-mail byl doručen úspěšně"
@@ -2075,7 +2076,7 @@ msgstr "Verze rozhraní API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Pluginy"
@@ -2128,6 +2129,7 @@ msgstr "Nezařazené"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Hledat..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Načítání"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Nebyly nalezeny žádné výsledky"
@@ -2247,7 +2250,7 @@ msgstr "Zpracovávání dat"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Vyskytla se chyba"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Změnit"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Přidat"
@@ -2871,8 +2874,8 @@ msgstr "Uživatelská nastavení"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Nastavení systému"
@@ -2921,11 +2924,11 @@ msgstr "Odhlásit"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Zásoby"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Výroba"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Nákup"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navigace"
msgid "About"
msgstr "O aplikaci"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr "Vymazat vyhledávání"
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Chyba při načítání navigačního stromu."
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Přílohy"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Kategorie"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Sériové číslo"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Sériové číslo"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Množství"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Dávka"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Dodavatel"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Načítání..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "Požadavky prodeje"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Položka přidána k objednávce"
msgid "Select supplier part"
msgstr "Vyberte položku dodavatele"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "Kopírovat číslo dílu dodavatele"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Nová položka dodavatele"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "Vyberte nákupní objednávku"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Nová objednávka"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Přidat do zvolené objednávky"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Nebyly vybrány žádné položky"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "Nebyly vybrány žádné nakoupitelné položky"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Přidané položky"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Všechny vybrané části byly přidány do objednávky"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Musíte vybrat alespoň jednu položku pro objednávku"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "Je vyžadována položka dodavatele"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "Je vyžadováno množství"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Neplatný výběr položky"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Opravte chyby ve vybraných položkách"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "Množství k dokončení"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Nastavit datum expirace"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Upravit balení"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Změnit stav"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Zadat kód dávky pro příchozí položky skladu"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Sériová čísla"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Zadejte datum expirace pro přijaté položky"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "Ponechte prázdné pro použití adresy objednávky"
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Přidat dané množství jako balení namísto jednotlivých položek"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Zadejte počáteční množství pro tuto skladovou položku"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Zadejte sériová čísla pro novou skladbu (nebo ponechte prázdné)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Stav skladu"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Nová skladová položka"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Vyberte skladovou položku k instalaci"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Potvrdit převod zásob"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr "Potvrdit vrácení zásob"
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Přesunout do výchozího umístění"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Přesunout"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Vrátit"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr "Sloučit do existujících zásob"
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Přesunout"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Vrátit"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr "Sloučit vrácené položky do existujících zásob, pokud je to možné"
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr "Poznámky k transakci"
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Počet"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Přidat zásobu"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Zásoba přidána"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "Zvyšte množství vybraných skladových položek o danou částku."
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Snížit zásobu"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Zásoba snížena"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "Snižte množství vybraných skladových položek o danou částku."
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Převést zásobu"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Skladová položka převedena"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "Přesunout vybrané položky do určeného umístění."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "Vrátit zásoby"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "Zásoby vráceny"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "Vrátit vybrané položky do skladu na určené místo."
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Spočítat zásoby"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Spočítáno"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "Spočítat vybrané skladové položky, a podle toho upravit množství."
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Změnit stav skladu"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Stav skladu byl změněn"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "Změnit stav vybraných skladových položek."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr "Změnit kód sarže"
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr "Změnit kód sarže pro vybrané skladové položky"
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Sloučit zásoby"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Zásoby sloučeny"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "Sloučit skladové položky"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "Sloučení nelze vrátit zpět"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "Při slučování položek mohou být informace o sledování ztraceny"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "Informace o dodavateli mohou být při slučování položek ztraceny"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Přiřadit sklad zákazníkovi"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Zásoby přiřazené zákazníkovi"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Odstranit skladové položky"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Skladová položka odstraněna"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "Tato operace trvale odstraní vybrané skladové položky."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Nadřazené skladové umístění"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Najít sériové číslo"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "Žádné odpovídající položky"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "Více odpovídajících položek"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "Neplatná odpověď ze serveru"
@@ -5539,7 +5547,7 @@ msgstr "Interní chyba serveru"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Odhlášen(a)"
@@ -5551,97 +5559,97 @@ msgstr "Pro tento prohlížeč došlo ke konfliktní relaci, která byla odhlá
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "Žádná odezva ze serveru."
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "Žádná odezva ze serveru."
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "MFA přihlášení úspěšné"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "Údaje o MFA byly automaticky poskytnuty v prohlížeči"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Úspěšně odhlášen/a"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Jazyk změněn"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "Váš aktivní jazyk byl změněn podle nastavení Vašeho profilu"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Motiv změněn"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Váš aktivní jazyk byl změněn podle nastavení Vašeho profilu"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Zkontrolujte doručenou poštu pro odkaz pro obnovení. Funguje to pouze v případě, že máte účet. Zkontrolujte také ve spamu."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Obnovení selhalo"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Již přihlášeno!"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Vyskytl se konflikt relací na serveru pro tento prohlížeč, prosím nejdřív se odhlašte."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Přihlášen"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Úspěšně přihlášen/a"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "Nepodařilo se nastavit MFA"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr "Nastavení MFA bylo úspěšné"
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "MFA přes TOTP bylo úspěšně nastaveno; budete se muset znovu přihlásit."
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Nastavení hesla"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Heslo bylo úspěšně nastaveno. Nyní se můžete přihlásit s novým heslem"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "Heslo nelze změnit"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "Dvě pole s hesly se neshodují"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Heslo bylo změněno"
@@ -7287,15 +7295,15 @@ msgstr "Ceník"
msgid "Part Creation"
msgstr "Vytvoření dílu"
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr "Expirace zásob"
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr "Inventura dílu"
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Sledování skladových položek"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr "Externí výrobní příkazy"
@@ -8347,11 +8355,11 @@ msgstr "Vyhledat podle sériového čísla"
msgid "Part Actions"
msgstr "Akce s položkou"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr "Díl uzamčen"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr "Díl odemčen"
diff --git a/src/frontend/src/locales/da/messages.po b/src/frontend/src/locales/da/messages.po
index c7c1e51a8e..a8586f1d2e 100644
--- a/src/frontend/src/locales/da/messages.po
+++ b/src/frontend/src/locales/da/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: da\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Danish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Annuller"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Handlinger"
@@ -135,19 +135,19 @@ msgstr "Nej"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Del"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Dele"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Producent Dele"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Del Kategori"
@@ -261,7 +261,7 @@ msgstr "Del Kategorier"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Lagervarer"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Lagerlokation"
@@ -328,7 +328,7 @@ msgstr "Produktionsordre"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Projektkoder"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Købsordre"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Salgsordrer"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Returordre"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "Anmodningen udløb"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Proces fejlede"
@@ -1391,11 +1392,11 @@ msgstr "Kræver Superbruger"
msgid "This widget requires superuser permissions"
msgstr "Denne widget kræver superbruger tilladelser"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Ingen Nyheder"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Der er ingen ulæste nyheder"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Fjern det tilknyttede billede fra denne vare?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Kode"
msgid "Error rendering preview"
msgstr "Fejl under visning"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Forhåndsvisning ikke tilgængelig, klik \"Genindlæs forhåndsvisning\"."
@@ -1728,11 +1729,11 @@ msgstr "Gem den nuværende skabelon og genindlæs forhåndsvisningen"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Vælg eksempel til forhåndsvisning"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Render fejl af skabelon"
@@ -1829,20 +1830,20 @@ msgstr "Logget ind"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Login mislykkedes"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Tjek din indtastning og prøv igen."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Mail levering succesfuld"
@@ -2075,7 +2076,7 @@ msgstr "API Version"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Plugins"
@@ -2128,6 +2129,7 @@ msgstr "Ukategoriseret"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Søg..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Indlæser"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Ingen resultater fundet"
@@ -2247,7 +2250,7 @@ msgstr "Behandler Data"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "En feil opstod"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Ændre"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Tilføj"
@@ -2871,8 +2874,8 @@ msgstr "Brugerindstillinger"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Systemindstillinger"
@@ -2921,11 +2924,11 @@ msgstr "Log ud"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Lager"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Produktion"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Indkøb"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navigation"
msgid "About"
msgstr "Omkring"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Fejl ved indlæsning af navigationstræ."
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Vedhæftninger"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Kategori"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Serienummer"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Serienummer"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Antal"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Batch"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Leverandør"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Indlæser..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "Salgs Krav"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Del tilføjet til indkøbsordre"
msgid "Select supplier part"
msgstr "Vælg leverandørdel"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "Kopier leverandørens del nummer"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Ny leverandørdel"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "Vælg indkøbsordre"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Ny indkøbsordre"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Tilføj til den valgte indkøbsordre"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Ingen dele valgt"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "Ingen dele, der kan købes, er valgt"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Dele Tilføjet"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Alle valgte dele føjet til en indkøbsordre"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Du skal vælge mindst en del for at bestille"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "Leverandør del er påkrævet"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "Mængde er påkrævet"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Ugyldig del valg"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Ret venligst fejlene i de valgte dele"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "Antal til fuldførelse"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Sæt Udløbsdato"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Juster Emballering"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Ændre Status"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Indtast batch kode for modtagne varer"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Serienummer"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Indtast en udløbsdato for modtagne vare"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "Efterlad blank for at bruge ordreadressen"
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Tilføj givet antal som pakker i stedet for individuelle elementer"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Angiv første antal for denne lagervare"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Indtast serienumre for nyt lager (eller efterlad blank)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Lager Status"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Tilføj Lagervare"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Vælg den del, der skal installeres"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Bekræft Lager Overførsel"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Flyt til standard lokation"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Flyt"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Retur"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Flyt"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Retur"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Antal"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Tilføj Lagerbeholdning"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Lager tilføjet"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "Forøg antallet af valgte lagervarer med et givet beløb."
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Fjern Lagervarer"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Lager fjernet"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "Reducer antallet af de valgte lagervarer med et givet beløb."
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Overfør Lager"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Lager overført"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "Overfør valgte elementer til den angivne lokation."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "Retur Lager"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "Lager returneret"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "Returner valgte elementer til lager, til den angivne lokation."
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Tæl Lager"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Lager er optalt"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "Tæl de valgte lagervarer, og juster mængden i overensstemmelse."
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Ændr Lagerstatus"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Lagerstatus ændret"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "Ændre status for de valgte lagervarer."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Flet Lager"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Lager sammenlagt"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "Flet Lagervarer"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "Fletningshandlingen kan ikke fortrydes"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "Sporingsoplysninger kan gå tabt ved sammenlægning af elementer"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "Leverandøroplysninger kan gå tabt ved sammenlægning af elementer"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Tildel lager til kunde"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Lager tildelt kunden"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Slet Lagervare"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Lagervare slettet"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "Denne handling vil permanent slette de valgte lagervarer."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Overordnet lager lokation"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Find Serienummer"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "Ingen matchende varer"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "Flere matchende varer"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "Ugyldigt svar fra server"
@@ -5539,7 +5547,7 @@ msgstr "Intern serverfejl"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Logget af"
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "Intet svar fra server."
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "Intet svar fra server."
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "Multifaktorgodkendelse Login succesfuld"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "Multifaktorgodkendelse detaljer blev automatisk givet i browseren"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Du er nu logget af"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Sprog ændret"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "Dit aktive sprog er blevet ændret til det der er sat i din profil"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Tema ændret"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Dit aktive tema er blevet ændret til det der er sat i din profil"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Tjek din indbakke for et nulstillingslink. Dette virker kun, hvis du har en konto. Tjek også spam."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Nulstilling fejlede"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Allerede logget ind"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Der er en konfliktfyldt session på serveren for denne browser. Log ud af det først."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Logget ind"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Logget ind"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "Kunne ikke oprette Multifaktorgodkendelse"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Adgangskode sat"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Adgangskoden blev oprettet. Du kan nu logge ind med din nye adgangskode"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "Adgangskoden kunne ikke ændres"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "De to adgangskodefelter matcher ikke"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Adgangskode ændret"
@@ -7287,15 +7295,15 @@ msgstr "Prissætning"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Lager Sporing"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "Søg på serienummer"
msgid "Part Actions"
msgstr "Del Handlinger"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/de/messages.po b/src/frontend/src/locales/de/messages.po
index 903121d72e..5c822be01d 100644
--- a/src/frontend/src/locales/de/messages.po
+++ b/src/frontend/src/locales/de/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: de\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Abbrechen"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Aktionen"
@@ -135,19 +135,19 @@ msgstr "Nein"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Teil"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Teile"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Herstellerteile"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Teilkategorie"
@@ -261,7 +261,7 @@ msgstr "Teil-Kategorien"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Lagerartikel"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Lagerort"
@@ -328,7 +328,7 @@ msgstr "Bauauftrag"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Projektnummern"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Einkaufsbestellung"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Verkaufsauftrag"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Rückgabe Auftrag"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "Bei der Anfrage ist eine Zeitüberschreitung aufgetreten"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Prozess fehlgeschlagen"
@@ -1391,11 +1392,11 @@ msgstr "Superuser benötigt"
msgid "This widget requires superuser permissions"
msgstr "Dieses Widget benötigt Superuser-Berechtigungen"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Keine Neuigkeiten"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Es gibt keine ungelesenen Neuigkeiten"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Verknüpftes Bild von diesem Teil entfernen?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Code"
msgid "Error rendering preview"
msgstr "Fehler beim rendern der Vorschau"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Vorschau nicht verfügbar, klicke \"Vorschau neu laden\"."
@@ -1728,11 +1729,11 @@ msgstr "Die aktuelle Vorlage speichern und die Vorschau neu laden"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Instanz für Vorschau auswählen"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Fehler bei Darstellung der Vorlage"
@@ -1829,20 +1830,20 @@ msgstr "Erfolgreich eingeloggt"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Login fehlgeschlagen"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Überprüfen Sie Ihre Eingabe und versuchen Sie es erneut."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Mail erfolgreich gesendet"
@@ -2075,7 +2076,7 @@ msgstr "API-Version"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Plugins"
@@ -2128,6 +2129,7 @@ msgstr "Nicht kategorisiert"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Suchen..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Wird geladen"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Keine Ergebnisse gefunden"
@@ -2247,7 +2250,7 @@ msgstr "Daten werden verarbeiten"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Ein Fehler ist aufgetreten"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Ändern"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Hinzufügen"
@@ -2871,8 +2874,8 @@ msgstr "Benutzer-Einstellungen"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Einstellungen"
@@ -2921,11 +2924,11 @@ msgstr "Abmelden"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Lager"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Fertigung"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Einkauf"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navigation"
msgid "About"
msgstr "Über uns"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Fehler beim Laden des Navigationsbaums."
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Anhänge"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Kategorie"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Seriennummer"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Seriennummer"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Anzahl"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Losnummer"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Lieferant"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Lade..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "Verkaufsanforderungen"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Teil zur Bestellung hinzugefügt"
msgid "Select supplier part"
msgstr "Zulieferer-Teil auswählen"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "Lieferanten-Artikelnummer kopieren"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Neues Zulieferer-Teil"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "Bestellung auswählen"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Neue Bestellung"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Keine Teile ausgewählt"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Teile hinzugefügt"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Alle ausgewählten Teile wurden einer Bestellung hinzugefügt"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Sie müssen mindestens einen Teil für die Bestellung auswählen"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "Lieferantenteil ist erforderlich"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "Menge ist erforderlich"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Ungültige Teileauswahl"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Bitte korrigieren Sie die Fehler in den ausgewählten Teilen"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Ablaufdatum festlegen"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Verpackung anpassen"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Status ändern"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Losnummern eingeben für empfangene Gegenstände"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Seriennummern"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Ablaufdatum eingeben für empfangene Gegenstände"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Angegebene Menge als Packungen anstatt einzelner Artikel hinzufügen"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Ausgangsmenge für diesen Lagerartikel eingeben"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Lagerbestand Status"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Lagerartikel hinzufügen"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Teil zur Installation auswählen"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Bestand-Transfer bestätigen"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Zum Standard-Lagerort verschieben"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Verschieben"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Zurück"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Verschieben"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Zurück"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Anzahl"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Bestand hinzufügen"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Bestand hinzugefügt"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "Menge der ausgewählten Bestandteile um einen bestimmten Betrag erhöhen"
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Bestand entfernen"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Bestand entfernt"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "Menge der ausgewählten Bestandteile um einen bestimmten Betrag reduzieren"
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Bestand verschieben"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Bestand übertragen"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "Ausgewählte Elemente an den angegebenen Ort übertragen."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "Lagerbestand zurückgeben"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "Lagerbestand zurückgegeben"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Bestand zählen"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Lagerbestand gezählt"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Bestandsstatus ändern"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Bestandstatus geändert"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "Status der ausgewählten Lagerartikel ändern."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Bestand zusammenführen"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Lagerbestand zusammengeführt"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "Lagerbestand zusammenführen"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "Das Zusammenführen kann nicht rückgängig gemacht werden"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "Tracking-Informationen können beim Zusammenführen von Elementen verloren gehen"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "Lieferanteninformationen können beim Zusammenführen verloren gehen"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Lagerbestand einem Kunden zuweisen"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Lagerbestand wurde Kunden zugewiesen"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Bestand löschen"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Lagerbestand gelöscht"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "Dieser Vorgang löscht die ausgewählten Lagerbestandteile unwiderruflich."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Übergeordneter Lagerort"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Seriennummer finden"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "Keine passenden Elemente"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "Mehrere passende Elemente"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "Ungültige Antwort vom Server"
@@ -5539,7 +5547,7 @@ msgstr "Interner Serverfehler"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Ausgeloggt"
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "MFA Anmeldung erfolgreich"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "MFA-Details wurden automatisch im Browser angegeben"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Erfolgreich abgemeldet"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Sprache geändert"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "Die aktive Sprache wurde auf die Sprache des Profils geändert"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Design geändert"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Das aktive Design wurde zu dem im Profil eingestellten geändert"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Prüfen Sie Ihren Posteingang für einen Link zum Zurücksetzen. Dies funktioniert nur, wenn Sie ein Konto haben. Prüfen Sie auch den Spam-Ordner."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Zurücksetzen fehlgeschlagen"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Bereits angemeldet"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Es gibt eine widersprüchliche Sitzung auf dem Server für diesen Browser. Bitte zuerst abmelden."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Angemeldet"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Erfolgreich angemeldet"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "MFA konnte nicht eingerichtet werden"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Passwort festgelegt"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Das Passwort wurde erfolgreich festgelegt. Sie können sich jetzt mit Ihrem neuen Passwort anmelden"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "Passwort konnte nicht geändert werden"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "Die beiden Passwortfelder stimmten nicht überein."
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Passwort geändert"
@@ -7287,15 +7295,15 @@ msgstr "Preise"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Bestandsverfolgung"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "Nach Seriennummer suchen"
msgid "Part Actions"
msgstr "Teile-Aktionen"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/el/messages.po b/src/frontend/src/locales/el/messages.po
index fc37472526..f1aa2605f9 100644
--- a/src/frontend/src/locales/el/messages.po
+++ b/src/frontend/src/locales/el/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: el\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Ακύρωση"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Ενέργειες"
@@ -135,19 +135,19 @@ msgstr "Όχι"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Προϊόν"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Προϊόντα"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Προϊόντα Κατασκευαστή"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Κατηγορία Προϊόντος"
@@ -261,7 +261,7 @@ msgstr "Κατηγορίες Προϊόντων"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Προϊόντα Αποθέματος"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Τοποθεσία Αποθέματος"
@@ -328,7 +328,7 @@ msgstr "Εντολή Κατασκευής"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Κωδικοί Έργων"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Εντολή Αγοράς"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Εντολή Πώλησης"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Εντολή Επιστροφής"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "Το αίτημα έληξε χρονικά"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Η διαδικασία απέτυχε"
@@ -1391,11 +1392,11 @@ msgstr "Απαιτεί Superuser"
msgid "This widget requires superuser permissions"
msgstr "Αυτό το widget απαιτεί δικαιώματα superuser"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Δεν υπάρχουν νέα"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Δεν υπάρχουν μη αναγνωσμένα νέα"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Αφαίρεση της σχετικής εικόνας από αυτό το στοιχείο;"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Κωδικός"
msgid "Error rendering preview"
msgstr "Σφάλμα δημιουργίας προεπισκόπησης"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Η προεπισκόπηση δεν είναι διαθέσιμη, πατήστε \"Επαναφόρτωση προεπισκόπησης\"."
@@ -1728,11 +1729,11 @@ msgstr "Αποθήκευση του τρέχοντος προτύπου και
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Επιλέξτε Προϊόν για προεπισκόπηση"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Σφάλμα αποτύπωσης προτύπου"
@@ -1829,20 +1830,20 @@ msgstr "Συνδεθήκατε με επιτυχία"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Αποτυχία σύνδεσης"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Ελέγξτε τα στοιχεία σας και προσπαθήστε ξανά."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Το email στάλθηκε με επιτυχία"
@@ -2075,7 +2076,7 @@ msgstr "Έκδοση API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Plugins"
@@ -2128,6 +2129,7 @@ msgstr "Χωρίς κατηγορία"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Αναζήτηση..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Φόρτωση"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Δεν βρέθηκαν αποτελέσματα"
@@ -2247,7 +2250,7 @@ msgstr "Επεξεργασία δεδομένων"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Παρουσιάστηκε σφάλμα"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Αλλαγή"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Προσθήκη"
@@ -2871,8 +2874,8 @@ msgstr "Ρυθμίσεις χρήστη"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Ρυθμίσεις συστήματος"
@@ -2921,11 +2924,11 @@ msgstr "Αποσύνδεση"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Απόθεμα"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Κατασκευή"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Προμήθειες"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Πλοήγηση"
msgid "About"
msgstr "Σχετικά"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Σφάλμα φόρτωσης του δέντρου πλοήγησης."
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Συνημμένα"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Κατηγορία"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Σειριακός αριθμός"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Σειριακός αριθμός"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Ποσότητα"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Παραγωγική παρτίδα"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Προμηθευτής"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Φόρτωση..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "Απαιτήσεις πωλήσεων"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Το Προϊόν προστέθηκε στην παραγγελία α
msgid "Select supplier part"
msgstr "Επιλέξτε Προϊόν προμηθευτή"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Νέο Προϊόν προμηθευτή"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "Επιλέξτε παραγγελία αγοράς"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Νέα παραγγελία αγοράς"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Προσθήκη στην επιλεγμένη παραγγελία αγοράς"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Δεν επιλέχθηκαν προϊόντα"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "Δεν επιλέχθηκαν αγοραζόμενα Προϊόντα"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Τα Προϊόντα προστέθηκαν"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Όλα τα επιλεγμένα Προϊόντα προστέθηκαν σε παραγγελία αγοράς"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Πρέπει να επιλέξετε τουλάχιστον ένα Προϊόν για παραγγελία"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "Απαιτείται Προϊόν προμηθευτή"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "Απαιτείται ποσότητα"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Μη έγκυρη επιλογή Προϊόντος"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Παρακαλώ διορθώστε τα σφάλματα στα επιλεγμένα Προϊόντα"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "Ποσότητα προς ολοκλήρωση"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Ορισμός ημερομηνίας λήξης"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Προσαρμογή συσκευασίας"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Αλλαγή κατάστασης"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Εισαγάγετε κωδικό παρτίδας για τα παραληφθέντα είδη"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Σειριακοί αριθμοί"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Εισαγάγετε ημερομηνία λήξης για τα παραληφθέντα είδη"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "Αφήστε κενό για χρήση της διεύθυνσης τη
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Προσθέστε την ποσότητα ως πακέτα αντί για μεμονωμένα είδη"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Εισαγάγετε αρχική ποσότητα για αυτό το είδος"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Εισαγάγετε σειριακούς αριθμούς για νέο απόθεμα (ή αφήστε κενό)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Κατάσταση αποθέματος"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Προσθήκη είδους αποθέματος"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Επιλέξτε το Προϊόν προς εγκατάσταση"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Επιβεβαίωση μεταφοράς αποθέματος"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Μετακίνηση στην προεπιλεγμένη τοποθεσία"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Μετακίνηση"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Επιστροφή"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Μετακίνηση"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Επιστροφή"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Καταμέτρηση"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Προσθήκη αποθέματος"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Το απόθεμα προστέθηκε"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "Αυξήστε την ποσότητα των επιλεγμένων ειδών αποθέματος κατά μια δεδομένη τιμή."
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Αφαίρεση αποθέματος"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Το απόθεμα αφαιρέθηκε"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "Μείωση της ποσότητας των επιλεγμένων ειδών αποθέματος κατά μια δεδομένη τιμή."
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Μεταφορά αποθέματος"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Το απόθεμα μεταφέρθηκε"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "Μεταφέρετε τα επιλεγμένα είδη στην καθορισμένη τοποθεσία."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "Επιστροφή αποθέματος"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "Το απόθεμα επιστράφηκε"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "Επιστροφή των επιλεγμένων ειδών στο απόθεμα, στην καθορισμένη τοποθεσία."
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Καταμέτρηση αποθέματος"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Το απόθεμα καταμετρήθηκε"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "Καταμετρήστε τα επιλεγμένα είδη αποθέματος και προσαρμόστε την ποσότητα ανάλογα."
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Αλλαγή κατάστασης αποθέματος"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Η κατάσταση αποθέματος άλλαξε"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "Αλλαγή της κατάστασης των επιλεγμένων ειδών αποθέματος."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Συγχώνευση αποθέματος"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Το απόθεμα συγχωνεύτηκε"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "Συγχώνευση ειδών αποθέματος"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "Η ενέργεια συγχώνευσης δεν μπορεί να αναιρεθεί"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "Οι πληροφορίες ιχνηλάτησης μπορεί να χαθούν κατά τη συγχώνευση"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "Οι πληροφορίες προμηθευτή μπορεί να χαθούν κατά τη συγχώνευση"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Ανάθεση αποθέματος σε πελάτη"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Το απόθεμα ανατέθηκε στον πελάτη"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Διαγραφή ειδών αποθέματος"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Το απόθεμα διαγράφηκε"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "Αυτή η ενέργεια θα διαγράψει μόνιμα τα επιλεγμένα είδη αποθέματος."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Γονική τοποθεσία αποθέματος"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Εύρεση σειριακού αριθμού"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "Δεν βρέθηκαν αντίστοιχα είδη"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "Πολλαπλά αντίστοιχα είδη"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "Μη έγκυρη απόκριση από τον διακομιστή"
@@ -5539,7 +5547,7 @@ msgstr "Εσωτερικό σφάλμα διακομιστή"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Αποσυνδεθήκατε"
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "Δεν υπάρχει απόκριση από τον διακομιστή."
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "Δεν υπάρχει απόκριση από τον διακομιστή."
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "Επιτυχής σύνδεση με MFA"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "Οι λεπτομέρειες MFA παρέχθηκαν αυτόματα από τον browser"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Αποσυνδεθήκατε με επιτυχία"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Η γλώσσα άλλαξε"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "Η ενεργή γλώσσα σας άλλαξε σε αυτή που έχει οριστεί στο προφίλ σας"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Το θέμα άλλαξε"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Το ενεργό θέμα άλλαξε σε αυτό που έχει οριστεί στο προφίλ σας"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Ελέγξτε τα εισερχόμενά σας για τον σύνδεσμο επαναφοράς. Λειτουργεί μόνο αν έχετε λογαριασμό. Ελέγξτε και στα spam."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Η επαναφορά απέτυχε"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Ήδη συνδεδεμένος"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Υπάρχει αντικρουόμενη συνεδρία στον διακομιστή για αυτόν τον browser. Παρακαλώ αποσυνδεθείτε πρώτα από αυτή."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Συνδεθήκατε"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Συνδεθήκατε με επιτυχία"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "Αποτυχία ρύθμισης MFA"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Ο κωδικός ορίστηκε"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Ο κωδικός ορίστηκε με επιτυχία. Μπορείτε πλέον να συνδεθείτε με τον νέο σας κωδικό"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "Ο κωδικός δεν μπόρεσε να αλλάξει"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "Οι δύο πεδία κωδικού δεν ταιριάζουν"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Ο κωδικός άλλαξε"
@@ -7287,15 +7295,15 @@ msgstr "Τιμολόγηση"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Παρακολούθηση Αποθέματος"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "Αναζήτηση με σειριακό αριθμό"
msgid "Part Actions"
msgstr "Ενέργειες Προϊόντος"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/en/messages.po b/src/frontend/src/locales/en/messages.po
index 870b491dea..0580d343e2 100644
--- a/src/frontend/src/locales/en/messages.po
+++ b/src/frontend/src/locales/en/messages.po
@@ -74,12 +74,12 @@ msgstr "Cancel"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Actions"
@@ -130,19 +130,19 @@ msgstr "No"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -161,7 +161,7 @@ msgstr "Part"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Parts"
@@ -237,7 +237,7 @@ msgid "Manufacturer Parts"
msgstr "Manufacturer Parts"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Part Category"
@@ -256,7 +256,7 @@ msgstr "Part Categories"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -278,7 +278,7 @@ msgstr "Stock Items"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Stock Location"
@@ -323,7 +323,7 @@ msgstr "Build Order"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -381,7 +381,7 @@ msgid "Project Codes"
msgstr "Project Codes"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -394,7 +394,7 @@ msgstr "Purchase Order"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -427,7 +427,7 @@ msgstr "Sales Order"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -452,7 +452,7 @@ msgstr "Return Order"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -477,7 +477,7 @@ msgstr "Transfer Order"
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -639,14 +639,14 @@ msgstr "Selection Entries"
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -718,6 +718,7 @@ msgstr "The request timed out"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Process failed"
@@ -1386,11 +1387,11 @@ msgstr "Requires Superuser"
msgid "This widget requires superuser permissions"
msgstr "This widget requires superuser permissions"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "No News"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "There are no unread news items"
@@ -1471,7 +1472,7 @@ msgid "Remove the associated image from this item?"
msgstr "Remove the associated image from this item?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1650,7 +1651,7 @@ msgstr "Code"
msgid "Error rendering preview"
msgstr "Error rendering preview"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Preview not available, click \"Reload Preview\"."
@@ -1723,11 +1724,11 @@ msgstr "Save the current template and reload the preview"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Select instance to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Error rendering template"
@@ -1824,20 +1825,20 @@ msgstr "Logged in successfully"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Login failed"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Check your input and try again."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Mail delivery successful"
@@ -2070,7 +2071,7 @@ msgstr "API Version"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Plugins"
@@ -2123,6 +2124,7 @@ msgstr "Uncategorized"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Search..."
@@ -2148,6 +2150,7 @@ msgid "Loading"
msgstr "Loading"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "No results found"
@@ -2242,7 +2245,7 @@ msgstr "Processing Data"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "An error occurred"
@@ -2511,7 +2514,7 @@ msgid "Change"
msgstr "Change"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Add"
@@ -2866,8 +2869,8 @@ msgstr "User Settings"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "System Settings"
@@ -2916,11 +2919,11 @@ msgstr "Logout"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2929,7 +2932,7 @@ msgstr "Stock"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2937,7 +2940,7 @@ msgstr "Manufacturing"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2949,7 +2952,7 @@ msgstr "Purchasing"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2966,7 +2969,11 @@ msgstr "Navigation"
msgid "About"
msgstr "About"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr "Clear search"
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Error loading navigation tree."
@@ -3081,7 +3088,7 @@ msgid "Attachments"
msgstr "Attachments"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3377,15 +3384,15 @@ msgstr "Category"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3406,7 +3413,7 @@ msgid "Serial Number"
msgstr "Serial Number"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3414,7 +3421,7 @@ msgstr "Serial Number"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3441,15 +3448,15 @@ msgstr "Quantity"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Batch"
@@ -3971,7 +3978,7 @@ msgid "Supplier"
msgstr "Supplier"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Loading..."
@@ -4117,13 +4124,13 @@ msgid "Sales Requirements"
msgstr "Sales Requirements"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4168,64 +4175,64 @@ msgstr "Part added to purchase order"
msgid "Select supplier part"
msgstr "Select supplier part"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "Copy supplier part number"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "New supplier part"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "Select purchase order"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "New purchase order"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Add to selected purchase order"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "No parts selected"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "No purchaseable parts selected"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Parts Added"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "All selected parts added to a purchase order"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "You must select at least one part to order"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "Supplier part is required"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "Quantity is required"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Invalid part selection"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Please correct the errors in the selected parts"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4809,7 +4816,7 @@ msgstr "Quantity to Complete"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5092,12 +5099,12 @@ msgid "Set Expiry Date"
msgstr "Set Expiry Date"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Adjust Packaging"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Change Status"
@@ -5141,7 +5148,7 @@ msgid "Enter batch code for received items"
msgstr "Enter batch code for received items"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Serial Numbers"
@@ -5160,7 +5167,7 @@ msgid "Enter an expiry date for received items"
msgstr "Enter an expiry date for received items"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5262,218 +5269,219 @@ msgstr "Leave blank to use the order address"
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Add given quantity as packs instead of individual items"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Enter initial quantity for this stock item"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Enter serial numbers for new stock (or leave blank)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Stock Status"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Add Stock Item"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Select the part to install"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Confirm Stock Transfer"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr "Confirm Stock Return"
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Move to default location"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Move"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Return"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr "Merge into existing stock"
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Move"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Return"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr "Merge returned items into existing stock items if possible"
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr "Stock transaction notes"
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Count"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Add Stock"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Stock added"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "Increase the quantity of the selected stock items by a given amount."
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Remove Stock"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Stock removed"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "Decrease the quantity of the selected stock items by a given amount."
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Transfer Stock"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Stock transferred"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "Transfer selected items to the specified location."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "Return Stock"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "Stock returned"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "Return selected items into stock, to the specified location."
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Count Stock"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Stock counted"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "Count the selected stock items, and adjust the quantity accordingly."
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Change Stock Status"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Stock status changed"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "Change the status of the selected stock items."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr "Change Batch Code"
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr "Change batch code for the selected stock items"
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Merge Stock"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Stock merged"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "Merge Stock Items"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "Merge operation cannot be reversed"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "Tracking information may be lost when merging items"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "Supplier information may be lost when merging items"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Assign Stock to Customer"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Stock assigned to customer"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Delete Stock Items"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Stock deleted"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "This operation will permanently delete the selected stock items."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Parent stock location"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Find Serial Number"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "No matching items"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "Multiple matching items"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "Invalid response from server"
@@ -5534,7 +5542,7 @@ msgstr "Internal server error"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Logged Out"
@@ -5546,97 +5554,97 @@ msgstr "There was a conflicting session for this browser, which has been logged
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "No response from server."
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "No response from server."
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "MFA Login successful"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "MFA details were automatically provided in the browser"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Successfully logged out"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Language changed"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "Your active language has been changed to the one set in your profile"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Theme changed"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Your active theme has been changed to the one set in your profile"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Reset failed"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Already logged in"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "There is a conflicting session on the server for this browser. Please logout of that first."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Logged In"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Successfully logged in"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "Failed to set up MFA"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr "MFA Setup successful"
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "MFA via TOTP has been set up successfully; you will need to login again."
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Password set"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "The password was set successfully. You can now login with your new password"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "Password could not be changed"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "The two password fields didn’t match"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Password Changed"
@@ -7282,15 +7290,15 @@ msgstr "Pricing"
msgid "Part Creation"
msgstr "Part Creation"
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr "Stock Expiry"
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr "Part Stocktake"
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7300,7 +7308,7 @@ msgstr "Stock Tracking"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr "External Build Orders"
@@ -8342,11 +8350,11 @@ msgstr "Search by serial number"
msgid "Part Actions"
msgstr "Part Actions"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr "Part locked"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr "Part unlocked"
diff --git a/src/frontend/src/locales/es/messages.po b/src/frontend/src/locales/es/messages.po
index 2cd3316219..80607a7a02 100644
--- a/src/frontend/src/locales/es/messages.po
+++ b/src/frontend/src/locales/es/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: es\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Cancelar"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Acciones"
@@ -135,19 +135,19 @@ msgstr "No"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Pieza"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Piezas"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Piezas del fabricante"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Categoría de Pieza"
@@ -261,7 +261,7 @@ msgstr "Categorías de Pieza"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Artículos de Stock"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Ubicación de existencias"
@@ -328,7 +328,7 @@ msgstr "Orden de construcción"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Códigos de proyecto"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Pedido de compra"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Orden de venta"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Orden de devolución"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "La solicitud ha expirado"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr "Requiere Superusuario"
msgid "This widget requires superuser permissions"
msgstr "Este widget requiere permisos de superusuario"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Sin noticias"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "No hay noticias sin leer"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "¿Eliminar la imagen asociada de este elemento?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Código"
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Vista previa no disponible, haga clic en \"Recargar vista previa\"."
@@ -1728,11 +1729,11 @@ msgstr "Guardar la plantilla actual y recargar la vista previa"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Seleccione la instancia a previsualizar"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Error al renderizar plantilla"
@@ -1829,20 +1830,20 @@ msgstr "Se ha iniciado sesión con éxito"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Error al iniciar sesión"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Verifique su entrada e intente nuevamente."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Envío de correo exitoso"
@@ -2075,7 +2076,7 @@ msgstr "Versión API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Complementos"
@@ -2128,6 +2129,7 @@ msgstr "No clasificado"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Búsqueda..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Cargando"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "No hay resultados"
@@ -2247,7 +2250,7 @@ msgstr "Procesando datos"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Se ha producido un error"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Añadir"
@@ -2871,8 +2874,8 @@ msgstr "Ajustes del usuario"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Ajustes del sistema"
@@ -2921,11 +2924,11 @@ msgstr "Cerrar sesión"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Stock"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Fabricación"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Compras"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navegación"
msgid "About"
msgstr "Acerca de"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Archivos adjuntos"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Categoría"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Número de serie"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Número de serie"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Cantidad"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Lote"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Proveedor"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Cargando..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Partes Agregadas"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Establecer Fecha de Vencimiento"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Ajustar empaquetado"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Cambiar Estado"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Introduzca el código de lote para los artículos recibidos"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Números de serie"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Agrega una cantidad dada en conjunto en lugar de artículos individuales"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Cantidad inicial de existencias que tendrá este artículo"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Introduzca números de serie para las nuevas existencias (o deje en blanco)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Estado de Existencias"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Añadir artículo de stock"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Selecciona la pieza a instalar"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Confirmar transferencia de existencias"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Mover a la ubicación predeterminada"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Mover"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Devolver"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Mover"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Devolver"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Contar"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Agregar existencias"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Existencias añadidas"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Eliminar existencias"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Existencias eliminadas"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Transferir existencias"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Existencias transferidas"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Contar existencias"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Existencias contadas"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Cambiar estado de existencias"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Estado de existencias cambiado"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Juntar existencias"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Existencias fusionadas"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Asignar existencias a cliente"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Existencias asignadas a cliente"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Eliminar existencias"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Existencias eliminadas"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Ubicación del stock padre"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr "Error interno del servidor"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Desconectado"
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Se cerró sesión correctamente"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Restablecimiento fallido"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Ya iniciaste sesión"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Conectado"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Sesión iniciada correctamente"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Contraseña establecida"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "La contraseña fue establecida con éxito. Ahora puede iniciar sesión con su nueva contraseña"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr "Precios"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Seguimiento de existencias"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/es_MX/messages.po b/src/frontend/src/locales/es_MX/messages.po
index 47f9f314ee..69742f313d 100644
--- a/src/frontend/src/locales/es_MX/messages.po
+++ b/src/frontend/src/locales/es_MX/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: es_MX\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Spanish, Mexico\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Cancelar"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Acciones"
@@ -135,19 +135,19 @@ msgstr "No"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Pieza"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Piezas"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Piezas del fabricante"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Categoría de Pieza"
@@ -261,7 +261,7 @@ msgstr "Categorías de Pieza"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Artículos de Stock"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Ubicación de almacén"
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Códigos de proyecto"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Pedido de compra"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Orden de venta"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Orden de devolución"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "La solicitud ha expirado"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Proceso fallido"
@@ -1391,11 +1392,11 @@ msgstr "Requiere Superusuario"
msgid "This widget requires superuser permissions"
msgstr "Este widget requiere permisos de superusuario"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Sin noticias"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "No hay noticias sin leer"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "¿Eliminar imagen asociada al artículo?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Código"
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Vista previa no disponible, haga clic en \"Recargar vista previa\"."
@@ -1728,11 +1729,11 @@ msgstr "Guardar la plantilla actual y recargar la vista previa"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Seleccione la instancia a previsualizar"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Error al renderizar plantilla"
@@ -1829,20 +1830,20 @@ msgstr "Se ha iniciado sesión con éxito"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Error al iniciar sesión"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Verifique su entrada e intente nuevamente."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Envío de correo exitoso"
@@ -2075,7 +2076,7 @@ msgstr "Versión de API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Complementos"
@@ -2128,6 +2129,7 @@ msgstr "No clasificado"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Búsqueda..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Cargando"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "No hay resultados"
@@ -2247,7 +2250,7 @@ msgstr "Procesando datos"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Se ha producido un error"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Cambiar"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Agregar"
@@ -2871,8 +2874,8 @@ msgstr "Ajustes del usuario"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Ajustes del sistema"
@@ -2921,11 +2924,11 @@ msgstr "Cerrar sesión"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Existencias"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Fabricación"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Compras"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navegación"
msgid "About"
msgstr "Acerca de"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Archivos adjuntos"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Categoría"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Número de serie"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Número de serie"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Cantidad"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Lote"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Proveedor"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Cargando..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Parte añadida a la orden de compra"
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Nueva parte de proveedor"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Nueva orden de compra"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Añadir a la orden de compra seleccionada"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "No hay partes seleccionadas"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "Ninguna pieza comprable seleccionada"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Partes añadidas"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Todas las piezas seleccionadas añadidas a una orden de compra"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Debe seleccionar al menos una parte para ordenar"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "La pieza del proveedor es necesaria"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "Cantidad requerida"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Selección de pieza inválida"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Por favor, corrija los errores en las partes seleccionadas"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Establecer la fecha de caducidad"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Ajustar empaquetado"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Cambiar Estado"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Introduzca el código de lote para los artículos recibidos"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Números de serie"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Introduzca una fecha de caducidad para los artículos recibidos"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Agrega una cantidad dada en conjunto en lugar de artículos individuales"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Cantidad inicial de existencias que tendrá este artículo"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Introduzca números de serie para las nuevas existencias (o deje en blanco)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Estado del stock"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Añadir artículo de stock"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Selecciona la pieza a instalar"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Confirmar transferencia de existencias"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Mover a la ubicación predeterminada"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Mover"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Devolver"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Mover"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Devolver"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Contar"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Agregar existencias"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Existencias añadidas"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Eliminar existencias"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Existencias eliminadas"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Transferir existencias"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Existencias transferidas"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Contar existencias"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Existencias contadas"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Cambiar estado de existencias"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Estado de existencias cambiado"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Juntar existencias"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Existencias fusionadas"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Asignar existencias a cliente"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Existencias asignadas a cliente"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Eliminar existencias"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Existencias eliminadas"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Ubicación del stock padre"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr "Error interno del servidor"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Desconectado"
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Se cerró sesión correctamente"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Revisa tu bandeja de entrada para un enlace de restablecimiento. Esto solo funciona si tienes una cuenta. Revisa el correo no deseado también."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Restablecimiento fallido"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Ya iniciaste sesión"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Hay una sesión en conflicto en el servidor para este navegador. Por favor, cierra la sesión primero."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Conectado"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Sesión iniciada correctamente"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "Error al configurar MFA"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Contraseña establecida"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "La contraseña fue establecida con éxito. Ahora puede iniciar sesión con su nueva contraseña"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "No se ha podido cambiar la contraseña"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Contraseña Cambiada"
@@ -7287,15 +7295,15 @@ msgstr "Precios"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/et/messages.po b/src/frontend/src/locales/et/messages.po
index 09bb2085b1..b81536ab30 100644
--- a/src/frontend/src/locales/et/messages.po
+++ b/src/frontend/src/locales/et/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: et\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Estonian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Tühista"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Toimingud"
@@ -135,19 +135,19 @@ msgstr "Ei"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Osa"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Osad"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Osa kategooria"
@@ -261,7 +261,7 @@ msgstr "Osa kategooriad"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Lao asukoht"
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Projekti koodid"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Ostukorraldus"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "Viimane päring aegus"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Töötlemine ebaõnnestus"
@@ -1391,11 +1392,11 @@ msgstr "Nõuab superkasutajat"
msgid "This widget requires superuser permissions"
msgstr "See vidin nõuab superkasutaja õiguseid"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Uudiseid pole"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Lugemata uudiseid pole"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Kas soovite eemaldada seotud pildi sellest üksusest?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Kood"
msgid "Error rendering preview"
msgstr "Viga eelvaate loomisel"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Eelvaade pole saadaval, klõpsake \"Laadi eelvaade uuesti\"."
@@ -1728,11 +1729,11 @@ msgstr "Salvesta praegune mall ja laadi eelvaade uuesti"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Vali eelvaate jaoks eksemplar"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Malli renderdamisel tekkis viga"
@@ -1829,20 +1830,20 @@ msgstr "Sisselogimine õnnestus"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Sisselogimine ebaõnnestus"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Kontrollige oma sisestust ja proovige uuesti."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "E-kirja kohaletoimetamine õnnestus"
@@ -2075,7 +2076,7 @@ msgstr "API versioon"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Pluginad"
@@ -2128,6 +2129,7 @@ msgstr "Liigitamata"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Otsing..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Laadimine"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Tulemusi pole"
@@ -2247,7 +2250,7 @@ msgstr "Andmete töötlemine"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Ilmnes viga"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Muuda"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Lisa"
@@ -2871,8 +2874,8 @@ msgstr "Kasutaja seaded"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Süsteemi seaded"
@@ -2921,11 +2924,11 @@ msgstr "Logi välja"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Laoseis"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Tootmine"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Ostmine"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navigeerimine"
msgid "About"
msgstr "Teave"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Manused"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Kategooria"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Seerianumber"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Seerianumber"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Kogus"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Partii"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Tarnija"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Laadimine..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "Müügi nõuded"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Muuda staatust"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Seerianumbrid"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Sisesta saabunud ühikute aegumise kuupäevad"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Lisage antud kogus pakkidena individuaalsete esemete asemel"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Sisestage sellele laoseadmele algkogus"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Sisestage uued kaubanduslikud numbrikoodid (või jätke tühjaks)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Laoseis"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Liiguta"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Liiguta"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Kogus"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr "Sisemise serveri viga"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Edukalt välja logitud"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Keel on muudetud"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Teema on muudetud"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Kontrollige oma postkasti lähtestamise lingi jaoks. See toimib ainult siis, kui teil on konto. Vaadake ka rämpsposti."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Parool määrati edukalt. Nüüd saate sisse logida oma uue parooliga"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Parool on muudetud"
@@ -7287,15 +7295,15 @@ msgstr "Hind"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "Otsi seerianumbri järgi"
msgid "Part Actions"
msgstr "Osa toimingud"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/fa/messages.po b/src/frontend/src/locales/fa/messages.po
index 93bea9279a..f4d505db73 100644
--- a/src/frontend/src/locales/fa/messages.po
+++ b/src/frontend/src/locales/fa/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: fa\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Persian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr ""
@@ -135,19 +135,19 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr ""
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr ""
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr ""
@@ -261,7 +261,7 @@ msgstr ""
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr ""
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr ""
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr ""
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr ""
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr ""
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr ""
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr ""
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr ""
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr ""
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/fi/messages.po b/src/frontend/src/locales/fi/messages.po
index 063e372059..0cb403dbe6 100644
--- a/src/frontend/src/locales/fi/messages.po
+++ b/src/frontend/src/locales/fi/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: fi\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Finnish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr ""
@@ -135,19 +135,19 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr ""
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr ""
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr ""
@@ -261,7 +261,7 @@ msgstr ""
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr ""
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr ""
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr ""
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr ""
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr ""
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr ""
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr ""
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr ""
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr ""
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/fr/messages.po b/src/frontend/src/locales/fr/messages.po
index 863f9476ef..d4cf70673f 100644
--- a/src/frontend/src/locales/fr/messages.po
+++ b/src/frontend/src/locales/fr/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: fr\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
@@ -79,12 +79,12 @@ msgstr "Annuler"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Actions"
@@ -135,19 +135,19 @@ msgstr "Non"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Pièce"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Composants"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Pièces du fabricant"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Catégorie de composant"
@@ -261,7 +261,7 @@ msgstr "Catégories de composants"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Articles en stock"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Emplacement du stock"
@@ -328,7 +328,7 @@ msgstr "Ordre de construction"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Codes du projet"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Commande d’achat"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Ventes"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Retour de commande"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "La requête a expiré"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Processus échoué"
@@ -1391,11 +1392,11 @@ msgstr "Nécessite un super-utilisateur"
msgid "This widget requires superuser permissions"
msgstr "Ce gadget nécessite des permissions de super-utilisateur"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Pas d'actualités"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Il n'y a pas d'actualités non lues"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Supprimer l'image associée de cet élément ?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Code"
msgid "Error rendering preview"
msgstr "Impossible d'afficher l'aperçu"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Aperçu non disponible, cliquez sur \"Recharger l'aperçu\"."
@@ -1728,11 +1729,11 @@ msgstr "Enregistrer le modèle actuel et recharger l'aperçu"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Sélectionner l'instance à prévisualiser"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Erreur de rendu du modèle"
@@ -1829,20 +1830,20 @@ msgstr "Connexion réussie"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Login invalide"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Vérifiez votre saisie et réessayez."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Envoi du mail réussi"
@@ -2075,7 +2076,7 @@ msgstr "Version de l'API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Extensions"
@@ -2128,6 +2129,7 @@ msgstr "Non catégorisé"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Rechercher..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Chargement"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Aucun résultat trouvé"
@@ -2247,7 +2250,7 @@ msgstr "Traitement des données"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Une erreur s'est produite"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Modifier"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Ajouter"
@@ -2871,8 +2874,8 @@ msgstr "Paramètres de l'utilisateur"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Les paramètres du système"
@@ -2921,11 +2924,11 @@ msgstr "Se déconnecter"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Stock"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Fabrication"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Achat en cours"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navigation"
msgid "About"
msgstr "À propos"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Impossible de charger l'arbre de navigation."
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Fichiers joints"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Catégorie"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Numéro de série"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Numéro de série"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Quantité"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Lot"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Fournisseur"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Chargement..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "Conditions de vente"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Pièce ajoutée à l'ordre de commande"
msgid "Select supplier part"
msgstr "Sélectionner une pièce du fournisseur"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "Copier le numéro de pièce du fournisseur"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Nouvelle pièce fournisseur"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "Sélectionner un ordre de commande"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Nouvel ordre de commande"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Ajouter aux ordres de commande sélectionnés"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Aucune pièce sélectionnée"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "Aucune pièce achetable sélectionnée"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Pièce ajoutée"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Toutes les pièces sélectionnées ont été ajouté à l'ordre de commande"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Vous devez sélectionner au moins une pièce à commander"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "Le fournisseur est requis"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "La quantité est requise"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Sélection invalide"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Veuillez corriger les erreurs dans la sélection des pièces"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "Quantité à allouer"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Indiquer une date d'expiration"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Ajuster le conditionnement"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Changer le statut"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Saisir le code de lot pour les articles reçus"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Numéros de Série"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Entrer une date d'expiration pour les articles reçus"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "Laisser vide pour utiliser l'adresse de commande"
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Ajouter une quantité en paquet au lieu de pièces individuelles"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Entrez la quantité initiale pour cet article en stock"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
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)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "État du stock"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Ajouter un article en stock"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Sélectionnez la partie à installer"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Confirmer le transfert des stock"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Déplacer vers l'emplacement par défaut"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Déplacer"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Retour"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Déplacer"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Retour"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Compter"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Ajouter du stock"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Stock ajouté"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "Augmenter le nombre des articles en stock sélectionnés d'une quantité donnée."
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Supprimer du stock"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Stock retiré"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "Réduire le nombre des articles en stock sélectionnés d'une quantité donnée."
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Transférer le stock"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Stock transféré"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "Transférer les articles sélectionnés vers l'endroit spécifié."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "Remettre en stock"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "Remis en stock"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "Remettre les articles sélectionnés en stock, à l'endroit spécifié."
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Compter le stock"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Stock compté"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "Compter les articles en stock sélectionnés et ajuster la quantité."
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Changer l'état du stock"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Statut du stock changé"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "Changer le status des articles en stock sélectionnés."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Fusionner le stock"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Stock fusionné"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "Fusionner les articles en stock"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "L'opération de fusion ne permet pas de retour en arrière"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "Les informations de suivi pourraient être perdues lors de la fusion des articles"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "Les informations du fournisseur pourraient être perdues lors de la fusion des articles"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Lier un stock à un client"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Stock lié au client"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Supprimer l'article du stock"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Stock supprimé"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "Cette opération va supprimer définitivement les articles en stock sélectionnés."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Localisation Parente du stock"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Trouver le numéro de série"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "Pas d'article correspondant"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "Plusieurs articles correspondent"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "Réponse invalide du serveur"
@@ -5539,7 +5547,7 @@ msgstr "Erreur de serveur interne"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Déconnexion"
@@ -5551,97 +5559,97 @@ msgstr "Il y a eu une session en conflit pour ce navigateur, qui a été déconn
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "Aucune réponse du serveur."
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "Aucune réponse du serveur."
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "Connections réussie via MFA"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "Les informations pour la MFA ont été automatiquement fournis par le navigateur"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Déconnexion réussie !"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Langue changée"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "Votre langue active a été remplacée en celle qui est définie dans votre profil"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Thème changé"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Votre thème actif a été remplacé par celui défini dans votre profil"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Vérifiez votre boîte de réception pour un lien de réinitialisation. Cela ne fonctionne que si vous avez un compte. Vérifiez également dans le spam."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Échec de la réinitialisation"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Déjà connecté"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Il y a un conflit de session sur ce serveur pour ce navigateur. Veuillez d'abord vous déconnecter."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Connecté"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Vous êtes connecté(e)"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "Échec de la mise en place de l'AMF"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Mot de passe défini"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Votre mot de passe a été modifié avec succès. Vous pouvez maintenant vous connecter avec votre nouveau mot de passe"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "Le mot de passe n'a pas pu être changé"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "Les deux mots de passes ne corrspondent pas"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Mot de passe changé"
@@ -7287,15 +7295,15 @@ msgstr "Tarifs"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Suivi du stock"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "Rechercher par numéro de série"
msgid "Part Actions"
msgstr "Actions sur les pièces"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/he/messages.po b/src/frontend/src/locales/he/messages.po
index d36b587a53..ca4e2766ff 100644
--- a/src/frontend/src/locales/he/messages.po
+++ b/src/frontend/src/locales/he/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: he\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
@@ -79,12 +79,12 @@ msgstr "בטל"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr ""
@@ -135,19 +135,19 @@ msgstr "לא"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "פריט"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "פריטים"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "קטגוריית פריט"
@@ -261,7 +261,7 @@ msgstr "קטגוריית פריטים"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "פריטים במלאי"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "מיקום מלאי"
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "קוד פרויקט"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "הזמנות רכש"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "הזמנת מכירה"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "החזרת הזמנה"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "האם להסיר את התמונה המשויכת מפריט זה?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "קוד"
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "תצוגה מקדימה אינה זמינה, לחץ/י \"טען מחדש תצוגה מקדימה\". "
@@ -1728,11 +1729,11 @@ msgstr "שמור את התבנית הנוכחית וטען מחדש את התצ
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "בחר מופע לתצוגה מקדימה"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "שגיאה בעיבוד התבנית"
@@ -1829,20 +1830,20 @@ msgstr "התחברת בהצלחה"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "הכניסה נכשלה"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "בדוק את הקלט שלך ונסה שוב."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "הדואר נשלח בהצלחה"
@@ -2075,7 +2076,7 @@ msgstr "גרסת API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "תוספים"
@@ -2128,6 +2129,7 @@ msgstr "לא מסווג"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "חפש..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "טוען"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "לא נמצאו תוצאות"
@@ -2247,7 +2250,7 @@ msgstr "מעבד נתונים"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "אירעה שגיאה"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "הגדרות מערכת"
@@ -2921,11 +2924,11 @@ msgstr "התנתק"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "מלאי"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "רכישה"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "ניווט"
msgid "About"
msgstr "אודות"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "מספר סידורי"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "מספר סידורי"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "כמות"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/hi/messages.po b/src/frontend/src/locales/hi/messages.po
index 57ecd325bf..f11aa246cb 100644
--- a/src/frontend/src/locales/hi/messages.po
+++ b/src/frontend/src/locales/hi/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: hi\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Hindi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr ""
@@ -135,19 +135,19 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr ""
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr ""
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr ""
@@ -261,7 +261,7 @@ msgstr ""
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr ""
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr ""
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "लॉगिन असफल"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr ""
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr ""
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr ""
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr ""
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr ""
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr ""
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr ""
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/hu/messages.po b/src/frontend/src/locales/hu/messages.po
index 2d014a9a91..62b2df3c38 100644
--- a/src/frontend/src/locales/hu/messages.po
+++ b/src/frontend/src/locales/hu/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: hu\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Mégsem"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Műveletek"
@@ -135,19 +135,19 @@ msgstr "Nem"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Alkatrész"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Alkatrészek"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Gyártói alkatrészek"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Alkatrész kategória"
@@ -261,7 +261,7 @@ msgstr "Alkatrész kategóriák"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Készlet tételek"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Készlet hely"
@@ -328,7 +328,7 @@ msgstr "Gyártási utasítás"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Projektszámok"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Beszerzési rendelés"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Vevői rendelés"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Visszavétel"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "A kérés túllépte az időkorlátot"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "A folyamat sikertelen"
@@ -1391,11 +1392,11 @@ msgstr "Rendszergazdai jogok szükségesek"
msgid "This widget requires superuser permissions"
msgstr "Ez a widget főfelhasználói jogosultságokat igényel"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Nincsenek új hírek"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Nincsenek olvasatlan hírek"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Tételhez rendelt kép eltávolítása?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Kód"
msgid "Error rendering preview"
msgstr "Hiba az előnézet renderelése során"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Előnézet nem elérhető, kattintson az \"Előnézet Frissítés\"-re."
@@ -1728,11 +1729,11 @@ msgstr "Aktuális sablon elmentése és előnézet frissítése"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Az előnézet példány kiválasztása"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Hiba a sablon megjelenítésekor"
@@ -1829,20 +1830,20 @@ msgstr "Sikeres bejelentkezés"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Belépés sikertelen"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Ellenőrizd amit beírtál és próbáld újra."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Levél kézbesítése sikeres"
@@ -2075,7 +2076,7 @@ msgstr "API verzió"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Pluginok"
@@ -2128,6 +2129,7 @@ msgstr "Kategorizálatlan"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Keresés..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Betöltés"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Nincs találat"
@@ -2247,7 +2250,7 @@ msgstr "Adatok feldolgozása"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Hiba történt"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Módosítás"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Hozzáadás"
@@ -2871,8 +2874,8 @@ msgstr "Felhasználói beállítások"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Rendszerbeállítások"
@@ -2921,11 +2924,11 @@ msgstr "Kijelentkezés"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Készlet"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Gyártás"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Beszerzés"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navigáció"
msgid "About"
msgstr "Névjegy"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Navigációs fát nem sikerült betölteni."
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Mellékletek"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Kategória"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Sorozatszám"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Sorozatszám"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Mennyiség"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Köteg"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Beszállító"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Betöltés..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "Értékesítési igények"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Alkatrész hozzáadva a beszerzési rendeléshez"
msgid "Select supplier part"
msgstr "Beszállítói alkatrész kiválasztása"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "Beszállítói alkatrész szám másolása"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Új beszállítói alkatrész"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "Beszerzési rendelés kiválasztása"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Új beszerzési rendelés"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Hozzáadás a kiválasztott beszerzési rendeléshez"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Nincs kiválasztva alkatrész"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "Nincs kiválasztva beszerezhető alkatrész"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Alkatrészek hozzáadva"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Minden kiválasztott alkatrész beszerzési rendeléshez adva"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Legalább egy alkatrész választása szükséges a rendeléshez"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "Beszállítói alkatrész szükséges"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "Mennyiség megadása kötelező"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Érvénytelen alkatrész kiválasztás"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Kérjük javítsa ki a hibákat a kiválasztott alkatrészeknél"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "Teljesítendő mennyiség"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Lejárati dátum beállítása"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Csomagolás módosítása"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Állapot megváltoztatása"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Gyártási szám megadása a fogadott tételekhez"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Sorozatszámok"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Lejárati dátum megadása a fogadott tételekhez"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "Hagyja üresen a rendelési cím használatához"
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Mennyiség hozzáadása csomagolási egységenként egyedi tételek helyett"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Add meg a kezdeti mennyiséget ehhez a készlet tételhez"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
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)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Készlet állapota"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Új készlet tétel"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Válassza ki a telepítendő alkatrészt"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Mozgatás megerősítése"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Mozgatás az alapértelmezett helyre"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Áthelyezés"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Visszavétel"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Áthelyezés"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Visszavétel"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Mennyiség"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Készlethez ad"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Raktárkészlet hozzáadva"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "Kiválasztott készlettételek mennyiségének növelése adott értékkel."
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Készlet csökkentése"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Készlet eltávolítva"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "Kiválasztott készlettételek mennyiségének csökkentése adott értékkel."
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Készlet áthelyezése"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Készlet áthelyezve"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "Kiválasztott tétele mozgatása a meghatározott készlethelyre."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "Visszavételi készlet"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "Készlet visszavéve"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "Kiválasztott tételek visszavétele készletre a megadott helyre."
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Leltározás"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Készlet számlálva"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "Számolja meg a kiválasztott készlet tételeket és módosítsa a mennyiséget ennek megfelelően."
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Készlet állapot módosítása"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Készlet státusz megváltozott"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "A kiválasztott készlet tételek státuszának módosítása."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Készlet összevonása"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Készlet összevonva"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "Készlet tételek összevonása"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "Az összevonási művelet nem visszafordítható"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "Nyomonkövetési információk elveszhetnek tételek összevonásakor"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "Beszállítói információk elveszhetnek tételek összevonásakor"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Készlet hozzárendelése ügyfélhez"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Készlet hozzárendelve az ügyfélhez"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Készlet tétel törlése"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Készlet törölve"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "Ez a művelet véglegesen törli a kiválasztott készlet tételeket."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Szülő készlet hely"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Sorozatszám keresése"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "Nincs egyező tétel"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "Több egyező tétel"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "Érvénytelen válasz a szervertől"
@@ -5539,7 +5547,7 @@ msgstr "Belső szerverhiba"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Kijelentkezve"
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "Nincs válasz a szervertől."
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "Nincs válasz a szervertől."
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "MFA alapú bejelentkezés sikeres"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "Az MFA adatok automatikusan megadásra kerültek a böngészőben"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Sikeresen kijelentkeztél"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Nyelv megváltoztatva"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "Az aktív nyelv megváltozott a profilban beállítottra"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "A téma megváltoztatva"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Az aktív téma megváltozott a profilban beállítottra"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Nézd meg a beérkező levelek mappájában a visszaállítási linket. Ez csak akkor működik, ha van fiókod. Ellenőrizd a spameket is."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Visszaállítás sikertelen"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Már bejelentkezett"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Egy ütköző munkamenet található a szerveren ehhez a böngészőhöz. Kérjük előbb jelentkezzen ki abból."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Bejelentkezve"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Sikeres bejelentkezés"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "MFA beállítása sikertelen"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Jelszó beállítva"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "A jelszó beállítása sikeresen megtörtént. Most már bejelentkezhetsz az új jelszavaddal"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "A jelszót nem lehet megváltoztatni"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "A két jelszó nem egyezett meg"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Jelszó megváltozott"
@@ -7287,15 +7295,15 @@ msgstr "Árazás"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Készlettörténet"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "Sorozatszámra keresés"
msgid "Part Actions"
msgstr "Alkatrész műveletek"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/id/messages.po b/src/frontend/src/locales/id/messages.po
index 3592a4e8b7..9f33f07bf0 100644
--- a/src/frontend/src/locales/id/messages.po
+++ b/src/frontend/src/locales/id/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: id\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -79,12 +79,12 @@ msgstr "Batal"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr ""
@@ -135,19 +135,19 @@ msgstr "Tidak"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr ""
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr ""
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr ""
@@ -261,7 +261,7 @@ msgstr ""
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr ""
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Kode"
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Gagal Login"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr "Versi API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr ""
@@ -2128,6 +2129,7 @@ msgstr "Tidak terkategori"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Cari..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Memuat"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Tidak ada hasil yang ditemukan"
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Tambah"
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Pengaturan Sistem"
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Persediaan"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr "Tentang"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Nomor Seri"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Nomor Seri"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Jumlah"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Memuat..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Nomor Seri"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/it/messages.po b/src/frontend/src/locales/it/messages.po
index bacd6896c1..b103d3ba2c 100644
--- a/src/frontend/src/locales/it/messages.po
+++ b/src/frontend/src/locales/it/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: it\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Annulla"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Azioni"
@@ -135,19 +135,19 @@ msgstr "No"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Articolo"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Articoli"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Articoli Produttore"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Categoria Articolo"
@@ -261,7 +261,7 @@ msgstr "Categorie Articolo"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Articoli in magazzino"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Ubicazione articolo"
@@ -328,7 +328,7 @@ msgstr "Ordine di Produzione"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Codici del progetto"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Ordine d'acquisto"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Ordine di Vendita"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Ordine di reso"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "La richiesta è scaduta"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Processo fallito"
@@ -1391,11 +1392,11 @@ msgstr "Richiede Superuser"
msgid "This widget requires superuser permissions"
msgstr "Questo widget richiede i permessi di superuser"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Nessuna notizia"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Non ci sono notizie non lette"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Rimuovi l'immagine associata all'articolo?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Codice"
msgid "Error rendering preview"
msgstr "Errore nel renderizzare l'anteprima"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Anteprima non disponibile, clicca su \"Ricarica anteprima\"."
@@ -1728,11 +1729,11 @@ msgstr "Salva il modello corrente e ricarica l'anteprima"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Selezionare l'istanza da visualizzare in anteprima"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Errore nel visualizzare il modello"
@@ -1829,20 +1830,20 @@ msgstr "Accesso effettuato con successo"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Accesso non riuscito"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Controllare i dati inseriti e riprovare."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Spedizione email riuscita"
@@ -2075,7 +2076,7 @@ msgstr "Versione API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Plugin"
@@ -2128,6 +2129,7 @@ msgstr "Non categorizzato"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Ricerca..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Caricamento"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Nessun risultato trovato"
@@ -2247,7 +2250,7 @@ msgstr "Elaborazione dati"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Si è verificato un errore"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Cambiare"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Aggiungi"
@@ -2871,8 +2874,8 @@ msgstr "Impostazioni Utente"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Impostazioni di sistema"
@@ -2921,11 +2924,11 @@ msgstr "Disconnettiti"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Stock"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Fabbricazione"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Acquisto"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navigazione"
msgid "About"
msgstr "Info"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Errore nel caricare l'albero di navigazione."
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Allegati"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Categoria"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Numero Seriale"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Numero Seriale"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Quantità"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Lotto"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Fornitore"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Caricamento..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "Requisiti di vendita"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Articolo aggiunto all'ordine di acquisto"
msgid "Select supplier part"
msgstr "Seleziona l'articolo del fornitore"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "Copia il numero articolo del fornitore"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Nuovo articolo fornitore"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "Seleziona ordine d'acquisto"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Nuovo ordine d'acquisto"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Aggiungi all'ordine di acquisto selezionato"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Nessun articolo selezionato"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "Nessun articolo acquistabile selezionato"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Articolo aggiunto"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Tutte le parti selezionate aggiunte all'ordine di acquisto"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Devi selezionare almeno un articolo da ordinare"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "L'articolo fornitore è richiesto"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "La quantità è richiesta"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Selezione articolo invalida"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Si prega di correggere gli errori negli articoli selezionati"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "Quantità da completare"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Impostare una Data di Scadenza"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Regola Imballaggio"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Modifica Stato"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Inserisci il codice lotto per gli articoli ricevuti"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Numeri di serie"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Inserisci una data di scadenza per gli articoli ricevuti"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "Lascia vuoto per utilizzare l'indirizzo dell'ordine"
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Aggiungere la quantità data come pacchi invece di singoli articoli"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Inserisci quantità iniziale per questo articolo in giacenza"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Inserire i numeri di serie per la nuova giacenza (o lasciare vuoto)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Stato giacenza"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Aggiungi Elemento Magazzino"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Selezionare l'articolo da installare"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Conferma trasferimento"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Sposta nella posizione predefinita"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Sposta"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Reso"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Sposta"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Reso"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Conta"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Aggiungi Giacenza"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Scorte aggiunte"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "Aumenta la quantità degli articoli di magazzino selezionati di una data quantità."
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Rimuovi giacenza"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Scorte rimosse"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "Diminuisce la quantità degli articoli di magazzino selezionati di una data quantità."
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Trasferisci giacenza"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Scorte trasferite"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "Trasferisci gli elementi selezionati nella posizione specificata."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "Restituisci Elemento a Magazzino"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "Reso a magazzino effettuato"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "Restituisce gli articoli selezionati in magazzino, nella posizione specificata."
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Conteggio Giacenze"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Scorte contate"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "Contare gli articoli di magazzino selezionati e regolare la quantità di conseguenza."
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Modifica stato giacenze"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Stato delle scorte cambiato"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "Cambia lo stato degli articoli a magazzino selezionati."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Unisci giacenze"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Scorte unite"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "Unisci gli articoli di magazzino"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "L'operazione di unione non è reversibile"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "Le informazioni di tracciamento potrebbero essere perse durante l'unione degli articoli"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "Le informazioni sul fornitore potrebbero essere perse durante l'unione degli articoli"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Assegnare la scorta al cliente"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Scorte assegnate al cliente"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Cancella Elemento di Magazzino"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Scorte cancellate"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "Questa operazione eliminerà definitivamente gli articoli a magazzino selezionati."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Posizione giacenza principale"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Trova Numero Di Serie"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "Nessun articolo corrispondente trovato"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "Più elementi corrispondenti trovati"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "Risposta non valida dal server"
@@ -5539,7 +5547,7 @@ msgstr "Errore interno del server"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Disconnesso"
@@ -5551,97 +5559,97 @@ msgstr "C'è stata una sessione in conflitto per questo browser, che è stato di
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "Nessuna risposta dal server."
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "Nessuna risposta dal server."
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "Login MFA riuscito"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "I dettagli MFA sono stati forniti automaticamente nel browser"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Disconnesso con Successo"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Lingua cambiata"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "La tua lingua attiva è stata cambiata in quella impostata nel tuo profilo"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Tema cambiato"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Il tuo tema attivo è stato cambiato con quello impostato nel tuo profilo"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Controlla la tua casella di posta per un link di reset. Funziona solo se hai un account. Controlla anche lo spam."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Ripristino fallito"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Già connesso"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "C'è una sessione in conflitto sul server per questo browser. Si prega di disconnettersi prima dalla precedente sessione."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Accesso effettuato"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Accesso effettuato con successo"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "Impossibile impostare l'MFA"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr "Impostazione MFA riuscita"
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "MFA tramite TOTP è stato impostato con successo; sarà necessario effettuare nuovamente il login."
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Password impostata"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "La password è stata impostata con successo. Ora puoi accedere con la tua nuova password"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "La password non può essere cambiata"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "Le due password inserite non corrispondono"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Password cambiata"
@@ -7287,15 +7295,15 @@ msgstr "Prezzi"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Monitoraggio delle scorte"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "Cerca per numero di serie"
msgid "Part Actions"
msgstr "Azioni articolo"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/ja/messages.po b/src/frontend/src/locales/ja/messages.po
index 082b224b67..c596857b4c 100644
--- a/src/frontend/src/locales/ja/messages.po
+++ b/src/frontend/src/locales/ja/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ja\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -79,12 +79,12 @@ msgstr "キャンセル"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "アクション"
@@ -135,19 +135,19 @@ msgstr "いいえ"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "パーツ"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "パーツ"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "メーカー・パーツ"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "パーツカテゴリ"
@@ -261,7 +261,7 @@ msgstr "パーツカテゴリ"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "在庫商品"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "在庫場所"
@@ -328,7 +328,7 @@ msgstr "組立注文"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "プロジェクトコード"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "注文"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "セールスオーダー"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "リターンオーダー"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr "在庫移動指示"
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr "選択エントリ"
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "リクエストがタイムアウトしました"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "プロセス失敗"
@@ -1391,11 +1392,11 @@ msgstr "管理者権限が必要"
msgid "This widget requires superuser permissions"
msgstr "このウィジェットには管理者権限が必要です"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "ニュースなし"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "未読のニュースはありません"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "このアイテムから関連画像を削除しますか?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "コード"
msgid "Error rendering preview"
msgstr "プレビューの表示に失敗しました"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "プレビューが表示されない場合は、「プレビューの再読み込み」をクリックしてください。"
@@ -1728,11 +1729,11 @@ msgstr "現在のテンプレートを保存し、プレビューを再読み込
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "プレビューするインスタンスを選択"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "テンプレート描画エラー"
@@ -1829,20 +1830,20 @@ msgstr "ログイン成功"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "ログインに失敗しました"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "入力内容を確認し、もう一度やり直してください。"
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "メール送信成功"
@@ -2075,7 +2076,7 @@ msgstr "API バージョン"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "プラグイン"
@@ -2128,6 +2129,7 @@ msgstr "未分類"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "検索…"
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "読み込み中"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "一致するものが見つかりませんでした"
@@ -2247,7 +2250,7 @@ msgstr "加工データ"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "エラーが発生しました"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "変更"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "追加"
@@ -2871,8 +2874,8 @@ msgstr "ユーザー設定"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "システム設定"
@@ -2921,11 +2924,11 @@ msgstr "ログアウト"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "在庫"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "製造"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "購買"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "ナビゲーション"
msgid "About"
msgstr "概要"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "ナビゲーションツリーの読み込み中にエラーが発生しました。"
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "添付ファイル"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "カテゴリ"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "シリアル番号"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "シリアル番号"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "数量"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "スクール機能"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "仕入先"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "読み込み中…"
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "販売要件"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "注文書に追加された部品"
msgid "Select supplier part"
msgstr "サプライヤー部品の選択"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "サプライヤー部品番号をコピー"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "新サプライヤー部品"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "注文書の選択"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "新規発注"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "選択した注文書に追加する"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "部品選択なし"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "購入可能な部品が選択されていない"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "部品が追加された"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "選択されたすべての部品が発注書に追加される"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "少なくとも1つの部品を選択して注文する必要があります。"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "サプライヤーの部品が必要"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "数量が必要です"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "無効な部品選択"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "選択した部品の誤りを訂正してください。"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "完了数量"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "有効期限の設定"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "パッケージの調整"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "ステータスを変更"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "受領品のバッチコードを入力"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "シリアル番号"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "受け取った商品の有効期限を入力してください。"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "オーダーの住所を使用する場合は空欄のままにしてく
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "指定された数量を単品ではなくパックとして追加します。"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "この商品の初期数量を入力"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "新しい在庫のシリアル番号を入力(または空白のまま)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "在庫状況"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "在庫商品の追加"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "取り付ける部品の選択"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "株式譲渡の確認"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "デフォルトの場所に移動"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "移動"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "戻る"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "移動"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "戻る"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "カウント"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "在庫追加"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "在庫追加"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "選択された在庫品の数量を、指定された数量だけ増やします。"
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "在庫の削除"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "在庫一掃"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "選択された在庫品の数量を、指定された数量分だけ減らします。"
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "株式譲渡"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "株式譲渡"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "選択されたアイテムを指定された場所に移動します。"
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "在庫戻し"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "在庫が戻りました"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "選択された商品を、指定された場所へ在庫に戻してください。"
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "在庫数"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "在庫数"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "選択された在庫品目を数え、それに応じて数量を調整してください。"
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "在庫状況の変更"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "在庫状況の変更"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "選択された在庫品のステータスを変更します。"
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr "バッチコードを変更"
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr "選択した在庫品のバッチコードを変更します"
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "株式の併合"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "株式併合"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "在庫品を合算する"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "合算操作は元に戻せません"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "在庫品を合算する際、追跡情報が失われる可能性があります。"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "在庫品を合算する際、サプライヤー情報が失われる可能性があります。"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "顧客への在庫割り当て"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "顧客に割り当てられた在庫"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "在庫アイテムの削除"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "ストック削除"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "この操作により、選択された在庫品目が完全に削除されます。"
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "親株式所在地"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "シリアル番号を探す"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "該当する品目はありません"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "複数の品目が見つかりました"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "サーバーからの応答が無効です"
@@ -5539,7 +5547,7 @@ msgstr "内部サーバーエラー"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "ログアウト"
@@ -5551,97 +5559,97 @@ msgstr "このブラウザで競合するセッションがあったため、ロ
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "サーバーからの応答がありません。"
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "サーバーからの応答がありません。"
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "多要素認証ログインに成功しました"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "多要素認証の詳細情報はブラウザに自動的に記録されました"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "ログアウトに成功しました"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "言語変更"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "アクティブ言語がプロフィールで設定した言語に変更されました。"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "テーマ変更"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "アクティブなテーマがプロフィールで設定したものに変更されました。"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "リセットのリンクを受信トレイでご確認ください。これはアカウントを持っている場合にのみ機能します。迷惑メールもチェックしてください。"
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "リセット失敗"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "ログイン済み"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "このブラウザのセッションがサーバー上で競合しています。まずそちらからログアウトしてください。"
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "ログイン中"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "ログインに成功しました"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "MFAの設定に失敗しました"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr "MFA の設定が正常に完了しました"
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "TOTP による MFA の設定が正常に完了しました。再度ログインする必要があります。"
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "パスワード設定"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "パスワードは正常に設定されました。新しいパスワードでログインできます。"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "パスワードを変更できませんでした"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "2つのパスワードフィールドが一致しませんでした"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "パスワードが変更されました"
@@ -7287,15 +7295,15 @@ msgstr "価格"
msgid "Part Creation"
msgstr "部品作成"
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr "在庫期限切れ"
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr "部品棚卸し"
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "在庫管理"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr "外部ビルドオーダー"
@@ -8347,11 +8355,11 @@ msgstr "シリアル番号で検索"
msgid "Part Actions"
msgstr "パートアクション"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/ko/messages.po b/src/frontend/src/locales/ko/messages.po
index 25870f013f..cda20b5483 100644
--- a/src/frontend/src/locales/ko/messages.po
+++ b/src/frontend/src/locales/ko/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ko\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -79,12 +79,12 @@ msgstr "취소"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "작업"
@@ -135,19 +135,19 @@ msgstr "아니요"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "부품"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "부품"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "제조업체 부품"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "부품 카테고리"
@@ -261,7 +261,7 @@ msgstr "부품 카테고리 목록"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "재고 품목"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "재고 위치"
@@ -328,7 +328,7 @@ msgstr "생산 주문"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "프로젝트 코드 목록"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "발주서"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "판매 주문서"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "반품 주문"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr "선택 항목"
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "요청 시간이 초과되었습니다."
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "프로세스 실패"
@@ -1391,11 +1392,11 @@ msgstr "슈퍼유저 권한 필요"
msgid "This widget requires superuser permissions"
msgstr "이 위젯에는 수퍼유저 권한이 필요합니다."
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "새 소식 없음"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "읽지 않은 뉴스 항목이 없습니다"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "이 항목에 연결된 이미지를 제거하시겠습니까?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "암호"
msgid "Error rendering preview"
msgstr "미리보기 렌더링 오류"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "미리보기를 사용할 수 없습니다. \"미리보기 다시 불러오기\"를 클릭하세요"
@@ -1728,11 +1729,11 @@ msgstr "현재 템플릿을 저장하고 미리보기를 다시 로드하세요.
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "미리볼 인스턴스 선택"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "템플릿 렌더링 오류"
@@ -1829,20 +1830,20 @@ msgstr "성공적으로 로그인되었습니다"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "로그인 실패"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "입력 내용을 확인한 후 다시 시도하세요"
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "메일 전달 성공"
@@ -2075,7 +2076,7 @@ msgstr "API 버전"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "플러그인"
@@ -2128,6 +2129,7 @@ msgstr "분류되지 않음"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "찾다..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "불러오는 중"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "결과를 찾을 수 없습니다"
@@ -2247,7 +2250,7 @@ msgstr "데이터 처리"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "오류가 발생했습니다"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "변화"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "추가하다"
@@ -2871,8 +2874,8 @@ msgstr "사용자 설정"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "시스템 설정"
@@ -2921,11 +2924,11 @@ msgstr "로그아웃"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "재고"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "조작"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "구매"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "탐색"
msgid "About"
msgstr "에 대한"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "탐색 트리를 불러오는 중 오류가 발생했습니다"
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "첨부파일"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "카테고리"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "시리얼 번호"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "시리얼 번호"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "수량"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "일괄"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "공급자"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "불러오는 중..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "판매 요건"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "부품이 발주서에 추가되었습니다"
msgid "Select supplier part"
msgstr "협력업체 부품 선택"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "공급업체 부품 번호 복사"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "새로운 공급업체 부품"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "발주서 선택"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "새 발주서"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "선택한 발주서에 추가"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "선택한 부품이 없습니다."
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "구매 가능한 부품이 선택되지 않았습니다."
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "부품이 추가되었습니다"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "선택한 모든 부품이 발주서에 추가되었습니다"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "주문하려면 부품을 하나 이상 선택해야 합니다."
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "공급업체 부품이 필요합니다"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "수량이 필요합니다"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "잘못된 부품 선택"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "선택한 부분의 오류를 수정해주세요"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "완료할 수량"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "만료일 설정"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "포장 조정"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "상태 변경"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "입고된 항목의 배치 코드를 입력하세요"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "일련번호"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "입고된 항목의 만료일을 입력하세요"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "주문 주소를 사용하려면 비워두세요."
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "개별 항목 대신 포장 단위로 수량을 추가합니다"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "이 재고 품목의 초기 수량을 입력하세요"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "새 재고의 시리얼 번호를 입력하세요. 비워 둘 수도 있습니다"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "재고현황"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "재고 품목 추가"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "설치할 부품 선택"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "재고 이전 확인"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "기본 위치로 이동"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "이동하다"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "반품"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "이동하다"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "반품"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "실사"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "재고 추가"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "재고 추가됨"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "선택한 재고 품목의 수량을 지정한 만큼 늘립니다"
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "재고 차감"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "재고가 차감되었습니다"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "선택한 재고 품목의 수량을 지정한 만큼 줄입니다"
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "재고 이전"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "재고양도"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "선택한 항목을 지정한 위치로 이동합니다"
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "재고 반환"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "재고가 반환되었습니다"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "선택한 항목을 지정한 위치의 재고로 반환합니다"
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "재고 수량"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "재고 계산"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "선택한 재고 품목을 실사하고 수량을 그에 맞게 조정합니다"
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "재고현황 변경"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "재고 상태가 변경되었습니다."
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "선택한 재고 품목의 상태를 변경합니다"
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr "배치 코드 변경"
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr "선택한 재고 품목의 배치 코드를 변경합니다"
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "재고 병합"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "재고 병합"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "재고 품목 병합"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "병합 작업은 되돌릴 수 없습니다."
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "항목을 병합하면 추적 정보가 손실될 수 있습니다."
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "품목을 병합하면 공급업체 정보가 손실될 수 있습니다."
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "고객에게 재고 할당"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "고객에게 할당된 재고"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "재고 품목 삭제"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "재고가 삭제되었습니다."
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "이 작업은 선택한 재고 품목을 영구적으로 삭제합니다"
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "모재 위치"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "일련번호 찾기"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "일치하는 항목이 없습니다."
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "일치하는 항목이 여러 개 있습니다"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "서버의 응답이 올바르지 않습니다"
@@ -5539,7 +5547,7 @@ msgstr "내부 서버 오류"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "로그아웃됨"
@@ -5551,97 +5559,97 @@ msgstr "이 브라우저에 충돌하는 세션이 있어 로그아웃되었습
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "서버에서 응답이 없습니다"
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "서버에서 응답이 없습니다"
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "MFA 로그인 성공"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "MFA 세부 정보가 브라우저에 자동으로 제공되었습니다."
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "성공적으로 로그아웃되었습니다"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "언어가 변경됨"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "현재 사용 언어가 프로필에 설정된 언어로 변경되었습니다"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "테마가 변경됨"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "현재 사용 테마가 프로필에 설정된 테마로 변경되었습니다"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "받은편지함에서 재설정 링크를 확인하세요. 계정이 있는 경우에만 동작합니다. 스팸함도 확인하세요"
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "재설정 실패"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "이미 로그인되어 있습니다."
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "이 브라우저에 대해 서버에 충돌하는 세션이 있습니다. 먼저 해당 세션에서 로그아웃하세요"
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "로그인됨"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "성공적으로 로그인되었습니다"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "MFA 설정에 실패했습니다"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr "MFA 설정 성공"
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "TOTP 기반 MFA가 성공적으로 설정되었습니다. 다시 로그인해야 합니다"
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "비밀번호가 설정되었습니다"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "비밀번호가 성공적으로 설정되었습니다. 이제 새로운 비밀번호로 로그인하실 수 있습니다"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "비밀번호를 변경할 수 없습니다."
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "두 개의 비밀번호 필드가 일치하지 않습니다"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "비밀번호가 변경되었습니다."
@@ -7287,15 +7295,15 @@ msgstr "가격"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr "부품 재고 실사"
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "재고 추적"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "시리얼 번호로 검색"
msgid "Part Actions"
msgstr "부품 작업"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/lt/messages.po b/src/frontend/src/locales/lt/messages.po
index e4e97cb05b..e40c7e6e23 100644
--- a/src/frontend/src/locales/lt/messages.po
+++ b/src/frontend/src/locales/lt/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: lt\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Lithuanian\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n"
@@ -79,12 +79,12 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr ""
@@ -135,19 +135,19 @@ msgstr "Ne"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr ""
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr ""
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr ""
@@ -261,7 +261,7 @@ msgstr ""
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr ""
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr ""
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr ""
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr ""
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr ""
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr ""
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr ""
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr ""
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr ""
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/lv/messages.po b/src/frontend/src/locales/lv/messages.po
index 135ee0cdb4..32909d1ff3 100644
--- a/src/frontend/src/locales/lv/messages.po
+++ b/src/frontend/src/locales/lv/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: lv\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Latvian\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2;\n"
@@ -79,12 +79,12 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr ""
@@ -135,19 +135,19 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr ""
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr ""
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr ""
@@ -261,7 +261,7 @@ msgstr ""
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr ""
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr ""
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr ""
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr ""
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr ""
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr ""
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr ""
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr ""
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr ""
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/nl/messages.po b/src/frontend/src/locales/nl/messages.po
index a3847dc986..26d0dc61f1 100644
--- a/src/frontend/src/locales/nl/messages.po
+++ b/src/frontend/src/locales/nl/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: nl\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Annuleer"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Acties"
@@ -135,19 +135,19 @@ msgstr "Nee"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Onderdeel"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Onderdelen"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Fabrikant onderdelen"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Onderdeel categorie"
@@ -261,7 +261,7 @@ msgstr "Onderdeel categorieën"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Voorraad items"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Voorraad locatie"
@@ -328,7 +328,7 @@ msgstr "Productieorder"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Project codes"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Inkooporder"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Verkooporder"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Retourorder"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "De aanvraag duurde te lang"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Proces is mislukt"
@@ -1391,11 +1392,11 @@ msgstr "Super user vereist"
msgid "This widget requires superuser permissions"
msgstr "Deze widget vereist super user machtigingen"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Geen nieuwsberichten"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Er zijn geen ongelezen nieuwsartikelen"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "De bijbehorende afbeelding van dit item verwijderen?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Code"
msgid "Error rendering preview"
msgstr "Fout bij weergeven voorbeeld"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Preview niet beschikbaar, klik op \"Herlaad voorbeeld\"."
@@ -1728,11 +1729,11 @@ msgstr "Sla de huidige sjabloon op en herlaad de preview"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Selecteer instantie om een voorbeeld te bekijken"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Fout bij laden sjabloon"
@@ -1829,20 +1830,20 @@ msgstr "Met succes ingelogd"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Inloggen mislukt"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Controleer uw invoer en probeer het opnieuw."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "E-mail levering gelukt"
@@ -2075,7 +2076,7 @@ msgstr "API versie"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Plug-ins"
@@ -2128,6 +2129,7 @@ msgstr "Niet-gecategoriseerd"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Zoeken..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Laden"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Geen resultaten gevonden"
@@ -2247,7 +2250,7 @@ msgstr "Gegevens verwerken"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Er is een fout opgetreden"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Wijzigen"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Toevoegen"
@@ -2871,8 +2874,8 @@ msgstr "Gebruiker instellingen"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Systeem instellingen"
@@ -2921,11 +2924,11 @@ msgstr "Uitloggen"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Voorraad"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Productie"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Kopen"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navigatie"
msgid "About"
msgstr "Over"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Fout bij het laden van de navigatie-structuur."
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Bijlagen"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Categorie"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Serienummer"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Serienummer"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Aantal"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Batch"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Leverancier"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Laden..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "Verkoop eisen"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Onderdeel aan inkooporder toegevoegd"
msgid "Select supplier part"
msgstr "Selecteer leveranciersdeel"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "Kopiëer leveranciersartikelnummer"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Nieuw leveranciers onderdeel"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "Selecteer een bestelling"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Nieuwe inkooporder"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Toevoegen aan geselecteerde inkooporder"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Geen onderdelen geselecteerd"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "Geen koopbare onderdelen geselecteerd"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Onderdelen toegevoegd"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Alle geselecteerde onderdelen toegevoegd aan een inkooporder"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "U moet minstens één onderdeel selecteren om te bestellen"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "Leveranciersonderdeel is vereist"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "Hoeveelheid is vereist"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Ongeldige onderdeel selectie"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Corrigeer de fouten in de geselecteerde onderdelen"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "Te voltooien hoeveelheid"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Stel vervaldatum in"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Verpakking aanpassen"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Status wijzigen"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Voer batch code in voor ontvangen items"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Serienummers"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Voer een vervaldatum in voor ontvangen items"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "Laat leeg om het besteladres te gebruiken"
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Opgegeven hoeveelheid als pakket toevoegen in plaats van individuele artikelen"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Voer de initiële hoeveelheid in voor dit voorraadartikel"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Voer serienummer in voor nieuwe voorraad (of laat het leeg)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Voorraad status"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Voorraad item toevoegen"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Selecteer het onderdeel om te installeren"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Bevestig voorraad overdracht"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Verplaats naar standaardlocatie"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Verplaatsen"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Terug"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Verplaatsen"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Terug"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Aantal"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Voorraad toevoegen"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Voorraad toegevoegd"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "Verhoog de hoeveelheid van de geselecteerde voorraadartikelen met een bepaald bedrag."
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Voorraad verwijderen"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Voorraad verwijderd"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "Verlaag de hoeveelheid van de geselecteerde voorraadartikelen met een bepaald bedrag."
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Voorraad verplaatsen "
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Voorraadartikel verplaatst"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "Verplaats de geselecteerde items naar de opgegeven locatie."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "Terug naar voorraad"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "Voorraad teruggestuurd"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "Retourneer geselecteerde items naar voorraad, naar de opgegeven locatie."
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Tel voorraad"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Voorraad geteld"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "Tel de geselecteerde voorraaditems, en pas de hoeveelheid overeenkomstig aan."
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Wijzig voorraad status"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Voorraad status gewijzigd"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "Verander de status van de geselecteerde voorraaditems."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Voorraad samenvoegen"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Voorraad samengevoegd"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "Voorraad items samenvoegen"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "Samenvoeg bewerking kan niet worden teruggedraaid"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "Tracking informatie kan verloren gaan tijdens het samenvoegen van items"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "De informatie van de leverancier kan verloren gaan bij het samenvoegen van items"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Voorraad toewijzen aan klant"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Voorraad toegewezen aan klant"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Voorraad items verwijderen"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Voorraad verwijderd"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "Deze bewerking zal de geselecteerde voorraaditems permanent verwijderen."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Bovenliggende voorraad locatie"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Zoek serienummer"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "Geen overeenkomende items"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "Meerdere overeenkomende items"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "Ongeldige reactie van server"
@@ -5539,7 +5547,7 @@ msgstr "Interne serverfout"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Uitgelogd"
@@ -5551,97 +5559,97 @@ msgstr "Er was een tegenstrijdige sessie voor deze browser, die is uitgelogd."
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "Geen antwoord van server."
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "Geen antwoord van server."
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "MFA-login succesvol"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "De MFA-gegevens werden automatisch verstrekt in de browser"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Succesvol uitgelogd"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Taal is gewijzigd"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "Uw actieve taal is gewijzigd naar de gewenste taal in uw profiel"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Thema gewijzigd"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Uw actieve thema is gewijzigd naar het thema in uw profiel"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Check uw inbox voor een reset-link. Dit werkt alleen als u een account heeft. Controleer ook in spam box."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Reset is mislukt"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Is al ingelogd"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Er is een tegenstrijdige sessie op de server voor deze browser. Meld u eerst af."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Ingelogd"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Succesvol ingelogd"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "Het instellen van MFA is mislukt"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr "MFA-instellingen geslaagd"
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "De MFA via TOTP is succesvol ingesteld; u moet opnieuw inloggen."
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Wachtwoord ingesteld"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Het wachtwoord is met succes ingesteld. U kunt nu inloggen met uw nieuwe wachtwoord"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "Wachtwoord kon niet worden gewijzigd"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "De twee wachtwoordvelden komen niet overeen"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Wachtwoord gewijzigd"
@@ -7287,15 +7295,15 @@ msgstr "Prijzen"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Voorraad bijhouden"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "Zoek op serienummer"
msgid "Part Actions"
msgstr "Acties van onderdeel"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/no/messages.po b/src/frontend/src/locales/no/messages.po
index ce8dd659db..ddd704ed84 100644
--- a/src/frontend/src/locales/no/messages.po
+++ b/src/frontend/src/locales/no/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: no\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Avbryt"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Handlinger"
@@ -135,19 +135,19 @@ msgstr "Nei"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Del"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Deler"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Produsentdeler"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Delkategori"
@@ -261,7 +261,7 @@ msgstr "Delkategorier"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Lagervarer"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Lagerplassering"
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Prosjektkoder"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Innkjøpsordre"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Salgsordre"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Returordre"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr ""
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Innloggingen mislyktes"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Kontroller inndataene og prøv igjen."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Levering av e-post vellykket"
@@ -2075,7 +2076,7 @@ msgstr "API-versjon"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Utvidelser"
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Søk..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Laster"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Ingen resultater funnet"
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Endre"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Legg til"
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Systeminnstillinger"
@@ -2921,11 +2924,11 @@ msgstr "Logg ut"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Lagerbeholdning"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Innkjøp"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navigasjon"
msgid "About"
msgstr "Om"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Vedlegg"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Kategori"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Serienummer"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Serienummer"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Antall"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Leverandør"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Serienumre"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Legg til gitt mengde som pakker i stedet for enkeltprodukter"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Angi innledende antall for denne lagervaren"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Angi serienumre for ny lagerbeholdning (eller la stå tom)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Tell"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Overfør lager"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Tell beholdning"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Sjekk innboksen for en nullstillingslenke. Dette fungerer bare hvis du har en konto. Sjekk også i spam."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Tilbakestilling feilet"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Passord angitt"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Passordet er blitt satt. Du kan nå logge inn med ditt nye passord"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Passord endret"
@@ -7287,15 +7295,15 @@ msgstr "Prising"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Sporing av lager"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr "Delhandlinger"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/pl/messages.po b/src/frontend/src/locales/pl/messages.po
index ce7b0499af..02ce6e483d 100644
--- a/src/frontend/src/locales/pl/messages.po
+++ b/src/frontend/src/locales/pl/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: pl\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
@@ -79,12 +79,12 @@ msgstr "Anuluj"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Akcje"
@@ -135,19 +135,19 @@ msgstr "Nie"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Komponent"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Komponenty"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Części producenta"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Kategoria części"
@@ -261,7 +261,7 @@ msgstr "Kategorie części"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Elementy magazynowe"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Lokacja stanu"
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Kody projektu"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Zlecenie zakupu"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Zlecenie sprzedaży"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Zwrot zamówienia"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr "Wymaga uprawnień superużytkownika"
msgid "This widget requires superuser permissions"
msgstr "Ten element wymaga uprawnień superużytkownika"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Brak wiadomości"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Brak nieprzeczytanych wiadomości"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Usunąć powiązany obrazek z tego elementu?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Kod"
msgid "Error rendering preview"
msgstr "Błąd renderowania podglądu"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Podgląd niedostępny, kliknij \"Odśwież podgląd\"."
@@ -1728,11 +1729,11 @@ msgstr "Zapisz bieżący szablon i odśwież podgląd"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Wybierz instancję do podglądu"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Błąd renderowania szablonu"
@@ -1829,20 +1830,20 @@ msgstr "Zalogowano pomyślnie"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Logowanie nie powiodło się"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Sprawdź dane i spróbuj ponownie."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Wiadomość dostarczona"
@@ -2075,7 +2076,7 @@ msgstr "Wersja API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Wtyczki"
@@ -2128,6 +2129,7 @@ msgstr "Bez kategorii"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Szukaj..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Wczytuję"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Nie znaleziono wyników"
@@ -2247,7 +2250,7 @@ msgstr "Przetwarzanie danych"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Wystąpił błąd"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Zmień"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Dodaj"
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Ustawienia systemowe"
@@ -2921,11 +2924,11 @@ msgstr "Wyloguj się"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Stan"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Zakupy"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Nawigacja"
msgid "About"
msgstr "O nas"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Numer seryjny"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Numer seryjny"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Ilość"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Ładowanie..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Dostosuj opakowanie"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Zmień status"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Numery seryjne"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Dodaj podaną ilość jako paczkę zamiast poszczególnych produktów"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Wprowadź początkową ilość dla tego towaru"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Wprowadź numery seryjne dla nowego stanu (lub pozostaw puste)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Dodaj element magazynowy"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Przenieś do domyślnej lokalizacji"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Przenieś"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Przenieś"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Ilość"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Dodaj stan"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Usuń stan"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Przenieś stan"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Policz stan"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Zmień status stanu magazynowego"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Wylogowano"
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Zalogowano"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Hasło ustawione"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Hasło zostało ustawione pomyślnie. Możesz teraz zalogować się przy użyciu nowego hasła"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr "Cennik"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/pt/messages.po b/src/frontend/src/locales/pt/messages.po
index 510f259217..f3f15c6516 100644
--- a/src/frontend/src/locales/pt/messages.po
+++ b/src/frontend/src/locales/pt/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Cancelar"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Ações"
@@ -135,19 +135,19 @@ msgstr "Não"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Peça"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Peças"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Peças do fabricante"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Categoria da peça"
@@ -261,7 +261,7 @@ msgstr "Categorias da Peça"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Itens de Estoque"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Localização de Stock"
@@ -328,7 +328,7 @@ msgstr "Ordem de Produção"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Códigos do Projeto"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Pedido de Compra"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Pedido de Venda"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Pedido de Devolução"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Remover a imagem associada a este item?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Código"
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Pré-visualização não disponível, clique em \"Recarregar Pré-visualização\"."
@@ -1729,11 +1730,11 @@ msgstr "Salvar o modelo atual e recarregar a visualização"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Selecionar instância para pré-visualização"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Erro ao renderizar modelo"
@@ -1830,20 +1831,20 @@ msgstr "Sessão iniciada com sucesso"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Não foi possível iniciar a sessão"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Verifique suas informações e tente novamente."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Envio bem sucedido"
@@ -2076,7 +2077,7 @@ msgstr "Versão da API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Extensões"
@@ -2129,6 +2130,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Pesquisa..."
@@ -2154,6 +2156,7 @@ msgid "Loading"
msgstr "A carregar"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Nenhum resultado encontrado"
@@ -2248,7 +2251,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2517,7 +2520,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Adicionar"
@@ -2872,8 +2875,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Definições de Sistema"
@@ -2922,11 +2925,11 @@ msgstr "Encerrar sessão"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2935,7 +2938,7 @@ msgstr "Estoque"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2943,7 +2946,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2955,7 +2958,7 @@ msgstr "Comprando"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2972,7 +2975,11 @@ msgstr "Navegação"
msgid "About"
msgstr "Sobre"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3087,7 +3094,7 @@ msgid "Attachments"
msgstr "Anexos"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3383,15 +3390,15 @@ msgstr "Categoria"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3412,7 +3419,7 @@ msgid "Serial Number"
msgstr "Número de Série"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3420,7 +3427,7 @@ msgstr "Número de Série"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3447,15 +3454,15 @@ msgstr "Quantidade"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Lote"
@@ -3977,7 +3984,7 @@ msgid "Supplier"
msgstr "Fornecedor"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "A carregar..."
@@ -4123,13 +4130,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4174,64 +4181,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4815,7 +4822,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5098,12 +5105,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Alterar Estado"
@@ -5147,7 +5154,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Números de Série"
@@ -5166,7 +5173,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5268,218 +5275,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Adicionar quantidade dada como pacotes em vez de itens individuais"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Digite a quantidade inicial para este item de estoque"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Insira os números de série para novo estoque (ou deixe em branco)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Estado do Estoque"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Adicionar item de Estoque"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Mover para o local padrão"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Mover"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Mover"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Contar"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Adicionar Estoque"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Remover Estoque"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Transferir Estoque"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Contar Estoque"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Alterar estado do Estoque"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Mesclar Estoque"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Excluir Itens de Estoque"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Localização parente de Estoque"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5540,7 +5548,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Sessão terminada"
@@ -5552,97 +5560,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Sessão terminada com sucesso"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Verifique a sua caixa de entrada com um link para redefinir. Isso só funciona se você já tiver uma conta. Cheque no também no spam."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Falha ao redefinir"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Sessão Iniciada"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Sessão iniciada com êxito"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Palavra-passe definida"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "A senha foi definida com sucesso. Você agora pode fazer login com sua nova senha"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7288,15 +7296,15 @@ msgstr "Preços"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7306,7 +7314,7 @@ msgstr "Rastreamento de Estoque"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8348,11 +8356,11 @@ msgstr ""
msgid "Part Actions"
msgstr "Ações da Peça"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/pt_BR/messages.po b/src/frontend/src/locales/pt_BR/messages.po
index e65b520361..1a29f76381 100644
--- a/src/frontend/src/locales/pt_BR/messages.po
+++ b/src/frontend/src/locales/pt_BR/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: pt\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Cancelar"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Ações"
@@ -135,19 +135,19 @@ msgstr "Não"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Peça"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Peças"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Peças do fabricante"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Categoria da peça"
@@ -261,7 +261,7 @@ msgstr "Categorias de peça"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Itens de estoque"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Localização do estoque"
@@ -328,7 +328,7 @@ msgstr "Pedido de produção"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Códigos de projeto"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Pedido de compra"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Pedido de venda"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Pedido de devolução"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr "Transferencia de estoque"
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr "Itens de seleção"
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "A solicitação excedeu o tempo"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Falha no processamento"
@@ -1391,11 +1392,11 @@ msgstr "Requer superusuário"
msgid "This widget requires superuser permissions"
msgstr "Este widget requer permissões de superusuário"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Nenhuma notícia"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Não há nenhuma notícia não lida"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Remover imagem associada a este item?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Código"
msgid "Error rendering preview"
msgstr "Erro ao renderizar pré-visualização"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Pré-visualização indisponível, clique em \"Recarregar pré-visualização\"."
@@ -1728,11 +1729,11 @@ msgstr "Salvar o modelo atual e recarregar a pré-visualização"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Selecione a instância para pré-visualizar"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Erro ao carregar template"
@@ -1829,20 +1830,20 @@ msgstr "Autenticação realizada com sucesso"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Falha ao acessar"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Verifique sua entrada e tente novamente."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Envio de e-mail concluído"
@@ -2075,7 +2076,7 @@ msgstr "Versão da API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Extensões"
@@ -2128,6 +2129,7 @@ msgstr "Sem classificação"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Buscar..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Carregando"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Nenhum resultado encontrado"
@@ -2247,7 +2250,7 @@ msgstr "Processando dados"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Ocorreu um erro"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Alterar"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Adicionar"
@@ -2871,8 +2874,8 @@ msgstr "Configurações de usuário"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Configurações do sistema"
@@ -2921,11 +2924,11 @@ msgstr "Sair"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Estoque"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Produção"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Compras"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navegação"
msgid "About"
msgstr "Sobre"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr "Limpar busca"
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Erro ao carregar a árvore de navegação."
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Anexos"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Categoria"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Número de série"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Número de série"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Quantidade"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Lote"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Fornecedor"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Carregando..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "Requisitos de vendas"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Peça adicionada a pedido de compra"
msgid "Select supplier part"
msgstr "Selecionar fornecedor da peça"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "Copiar número da peça do fornecedor"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Nova peça de fornecedor"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "Selecionar pedido"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Novo pedido de compra"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Adicionar ao pedido de compra selecionado"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Nenhuma peça selecionada"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "Nenhuma peça selecionada para compra"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Peças adicionadas"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Todas as peças selecionadas adicionadas a um pedido de compra"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Você deve selecionar pelo menos uma peça para o pedido"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "Uma peça do fornecedor é obrigatória"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "A quantidade é obrigatória"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Seleção de peça inválida"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Por favor, corrija os erros nas peças selecionadas"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "Quantidade a completar"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Definir data de validade"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Ajustar pacotes"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Alterar status"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Digite o código do lote para itens de estoque recebidos"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Números de série"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Insira uma data de expiração para os itens recebidos"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "Deixe em branco para usar o endereço do pedido"
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Adicionar quantidade dada como pacotes e não itens individuais"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Inserir quantidade inicial deste item de estoque"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Insira o número de série para novo estoque (ou deixe em branco)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Status do estoque"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Adicionar item do estoque"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Selecione a peça para instalar"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Confirmar transferência de estoque"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr "Confirmar devolução de estoque"
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Mover para o local padrão"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Mover"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Voltar"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr "Mesclar com o estoque existente"
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Mover"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Voltar"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr "Mesclar itens devolvidos com itens de estoque existentes, se possível"
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr "Notas da transação de estoque"
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Contar"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Adicionar estoque"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Estoque adicionado"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "Aumentar a quantidade dos itens de estoque selecionados em um valor determinado."
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Remover estoque"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Estoque removido"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "Diminuir a quantidade dos itens de estoque selecionados em um valor determinado."
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Transferir estoque"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Estoque transferido"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "Transferir os itens selecionados para o local especificado."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "Devolver estoque"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "Estoque devolvido"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "Devolver os itens selecionados ao estoque, no local especificado."
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Contar estoque"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Estoque contado"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "Contar os itens de estoque selecionados e ajustar a quantidade conforme necessário."
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Mudar status do estoque"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Status do estoque alterado"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "Alterar o status dos itens de estoque selecionados."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr "Alterar código de lote"
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr "Alterar código de lote dos itens de estoque selecionados"
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Mesclar estoque"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Estoque mesclado"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "Mesclar itens de estoque"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "A operação de mesclagem não pode ser revertida"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "Informações de rastreamento podem ser perdidas ao mesclar itens"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "Informações de fornecedor podem ser perdidas ao mesclar itens"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Atribuir estoque ao cliente"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Estoque atribuído ao cliente"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Excluir item de estoque"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Estoque excluído"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "Esta operação excluirá permanentemente os itens de estoque selecionados."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Local de estoque pai"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Encontrar número de série"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "Nenhum item correspondente"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "Vários itens correspondentes"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "Resposta inválida do servidor"
@@ -5539,7 +5547,7 @@ msgstr "Erro interno do servidor"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Desconectado"
@@ -5551,97 +5559,97 @@ msgstr "Havia uma sessão conflitante neste navegador, que foi desconectada."
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "Sem resposta do servidor."
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "Sem resposta do servidor."
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "Login com MFA bem-sucedido"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "Os dados de MFA foram fornecidos automaticamente no navegador"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Deslogado com sucesso"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Idioma alterado"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "O seu idioma ativo foi alterado para o do seu perfil"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Tema alterado"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Seu tema ativo foi alterado para o que foi definido em seu perfil"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Verifique sua caixa de entrada para o link de redefinição. Isso só funciona se você tiver uma conta. cheque no spam também."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "A redefinação falhou"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Já logado"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "Há uma sessão conflitante no servidor para este navegador. Por favor, faça logout primeiro."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Logado"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Logado com sucesso"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "Falha ao configurar autenticação de múltiplos fatores"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr "Autenticação de múltiplos fatores configurada com sucesso"
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "A MFA via TOTP foi configurada com sucesso; você precisará entrar novamente."
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Senha definida"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Sua senha foi alterada com sucesso. agora você pode acessar usando sua nova senha"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "A senha não pode ser alterada"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "As senhas são diferentes"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Senha alterada"
@@ -7287,15 +7295,15 @@ msgstr "Preços"
msgid "Part Creation"
msgstr "Criação de peça"
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr "Validade do estoque"
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr "Inventário da peça"
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Rastreamento de estoque"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr "Pedidos de produção externos"
@@ -8347,11 +8355,11 @@ msgstr "Buscar por número de série"
msgid "Part Actions"
msgstr "Ações da peça"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr "Peça bloqueada"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr "Peça desbloqueada"
diff --git a/src/frontend/src/locales/ro/messages.po b/src/frontend/src/locales/ro/messages.po
index 39b0585ded..13a13cfb9c 100644
--- a/src/frontend/src/locales/ro/messages.po
+++ b/src/frontend/src/locales/ro/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ro\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100>0 && n%100<20)) ? 1 : 2);\n"
@@ -79,12 +79,12 @@ msgstr "Anulează"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Acțiuni"
@@ -135,19 +135,19 @@ msgstr "Nu"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Piesă"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Piese"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Piesele Producătorului"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Categorie Piesă"
@@ -261,7 +261,7 @@ msgstr "Categorii Piese"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Stochează Articole"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Locația Stocului"
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Coduri Proiecte"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Comandă de achiziție"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Comandă de Vânzare"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Returnează Comanda"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr "Acest widget necesită permisiuni superutilizator"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Nicio știre"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Nu există știri necitite"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Eliminați imaginea asociată de la acest articol?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Cod"
msgid "Error rendering preview"
msgstr "Eroare la redarea previzualizării"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Previzualizare indisponibilă, apăsați \"Reîncărcare previzualizare\"."
@@ -1728,11 +1729,11 @@ msgstr "Salvați șablonul curent și reîncărcați previzualizarea"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr "Versiune API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Plugin-uri"
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr ""
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr ""
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr ""
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr ""
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Stoc"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Producție"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Achiziţie"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr ""
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Introduceți codul lotului pentru articolele primite"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Parolă setată"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Parola a fost setată cu succes. Acum vă puteţi autentifica cu noua parolă"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "Nu s-a putut modifica parola"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "Cele două câmpuri de parolă nu se potrivesc"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Parolă schimbată"
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/ru/messages.po b/src/frontend/src/locales/ru/messages.po
index 916d3a2fe5..096bda3b1f 100644
--- a/src/frontend/src/locales/ru/messages.po
+++ b/src/frontend/src/locales/ru/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: ru\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -79,12 +79,12 @@ msgstr "Отменить"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Действия"
@@ -135,19 +135,19 @@ msgstr "Нет"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Деталь"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Детали"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Детали производителей"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Категория детали"
@@ -261,7 +261,7 @@ msgstr "Категории деталей"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Складские позиции"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Место хранения"
@@ -328,7 +328,7 @@ msgstr "Заказ на сборку"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Коды проекта"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Заказ на закупку"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Заказ на продажу"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Заказ на возврат"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "Превышено время выполнения запроса"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "Не удалось выполнить процесс"
@@ -1391,11 +1392,11 @@ msgstr "Требует прав суперпользователя"
msgid "This widget requires superuser permissions"
msgstr "Этот виджет требует прав суперпользователя"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Новостей нет"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Нет непрочитанных новостей"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Удалить связанное изображение?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Код"
msgid "Error rendering preview"
msgstr "Ошибка при отрисовке предпросмотра"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Предварительный просмотр недоступен, нажмите \"Перезагрузить предпросмотр\"."
@@ -1728,11 +1729,11 @@ msgstr "Сохранить текущий шаблон и обновить пр
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Выберите экземпляр для просмотра"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Ошибка отображения шаблона"
@@ -1829,20 +1830,20 @@ msgstr "Вы успешно вошли в систему"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Ошибка входа"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Проверьте введенные данные и повторите попытку."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Отправка почты прошла успешно"
@@ -2075,7 +2076,7 @@ msgstr "Версия API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Плагины"
@@ -2128,6 +2129,7 @@ msgstr "Без категории"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Поиск..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Загрузка"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Ничего не найдено"
@@ -2247,7 +2250,7 @@ msgstr "Обработка данных"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Произошла ошибка"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Редактировать"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Добавить"
@@ -2871,8 +2874,8 @@ msgstr "Пользовательские настройки"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Системные настройки"
@@ -2921,11 +2924,11 @@ msgstr "Выход"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Склад"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Производство"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Закупки"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Панель навигации"
msgid "About"
msgstr "О проекте"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Ошибка загрузки дерева навигации."
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Вложения"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Категория"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Серийный номер"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Серийный номер"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Количество"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Партия"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Поставщик"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Загрузка..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "Требования продаж"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Детали добавлены в заказ на закупку"
msgid "Select supplier part"
msgstr "Выберите деталь поставщика"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "Скопировать номер детали поставщика"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Создать деталь поставщика"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "Выберите заказ на закупку"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Создать заказ на закупку"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Добавить в выбранный заказ на закупку"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Не выбраны детали"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "Не выбраны детали, которые можно закупить"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Детали добавлены"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Все выбранные детали добавлены в заказ на закупку"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Необходимо выбрать хотя бы одну деталь для закупки"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "Необходимо указать деталь поставщика"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "Необходимо указать количество"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Неправильный выбор деталей"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Исправьте ошибки в выбранных деталях"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "Количество для завершения"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "Задать срок годности"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Настройка упаковки"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Изменить статус"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Введите код партии для полученных запасов"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Серийные номера"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "Введите дату истечения срока годности полученных элементов"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "Оставьте поле пустым, чтобы использова
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Ввести количество упаковок вместо количества отдельных элементов"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Введите начальное количество этой детали на складе"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Введите серийные номера для нового склада (или оставьте пустым)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Состояние складской позиции"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Создать складскую позицию"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Выберите часть для установки"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Подтвердить перемещение запаса"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Переместить в местоположение по умолчанию"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Переместить"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Возврат"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Переместить"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Возврат"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Количество"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Увеличить склад"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Запас добавлен"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "Увеличить количество выбранных складских позиций на указанную величину."
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Уменьшить склад"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Запас удален"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "Уменьшить количество выбранных складских позиций на указанную величину."
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Переместить склад"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Запас перемещен"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "Переместить выбранные позиции в указанное место хранения."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "Возврат запасов"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "Запасы возвращены"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "Вернуть выбранные позиции на склад, в указанное место хранения."
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Подсчёт склада"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Запас посчитан"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "Произвести инвентаризацию выбранных складских позиций и скорректировать количество соответствующим образом."
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Изменить статус запасов"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Состояние запаса изменено"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "Изменить статус выбранных складских позиций."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Объединить склад"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Запасы объединены"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "Объединить складские позиции"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "Операция объединения не может быть отменена"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "При объединении позиций информация об отслеживании может быть потеряна"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "При объединении может быть потеряна информация о поставщиках"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Передать запас клиенту"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Запас передан клиенту"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Удалить складскую позицию"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Запас удален"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "Эта операция необратимо удалит выбранные складские позиции."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Расположение основного склада"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Поиск по серийному номеру"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "Нет подходящих элементов"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "Несколько подходящих элементов"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "Неверный ответ сервера"
@@ -5539,7 +5547,7 @@ msgstr "Внутренняя ошибка сервера"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Выход"
@@ -5551,97 +5559,97 @@ msgstr "Вы уже были авторизованы, старая сессия
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "Нет ответа от сервера."
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "Нет ответа от сервера."
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "Успешный вход с помощью МФА"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "Данные МФА автоматически переданы в браузер"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Успешный выход из системы"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "Язык изменён"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "Язык изменён на заданный в вашем профиле"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Тема изменена"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "Тема интерфейса изменена на заданную в профиле"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Проверьте свой почтовый ящик, чтобы получить ссылку на сброс. Это работает только в том случае, если у вас есть учетная запись. Проверьте также спам."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Сброс не удался"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Вход уже выполнен"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "На сервере есть конфликтующие сессии для данного браузера. Пожалуйста, выйдите из системы."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Войти в систему"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Вход выполнен успешно"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "Не удалось настроить МФА"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr "Многофакторная аутентификация настроена успешно"
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "Многофакторная аутентификация через TOTP настроена успешно; вам нужно авторизоваться повторно."
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Пароль установлен"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Пароль был установлен успешно. Теперь вы можете войти в систему с новым паролем"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "Пароль не может быть изменён"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "Пароли не совпадают"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Пароль изменен"
@@ -7287,15 +7295,15 @@ msgstr "Цены"
msgid "Part Creation"
msgstr "Создание детали"
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr "Срок хранения"
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Движение остатков"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "Поиск по серийному номеру"
msgid "Part Actions"
msgstr "Действия с деталью"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/sk/messages.po b/src/frontend/src/locales/sk/messages.po
index de018d89f0..5618159819 100644
--- a/src/frontend/src/locales/sk/messages.po
+++ b/src/frontend/src/locales/sk/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: sk\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Slovak\n"
"Plural-Forms: nplurals=4; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 3;\n"
@@ -79,12 +79,12 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr ""
@@ -135,19 +135,19 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr ""
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr ""
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr ""
@@ -261,7 +261,7 @@ msgstr ""
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr ""
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr ""
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr ""
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr ""
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr ""
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr ""
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr ""
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr ""
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr ""
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/sl/messages.po b/src/frontend/src/locales/sl/messages.po
index ea248523fb..56fbe913c6 100644
--- a/src/frontend/src/locales/sl/messages.po
+++ b/src/frontend/src/locales/sl/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: sl\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Slovenian\n"
"Plural-Forms: nplurals=4; plural=n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3;\n"
@@ -79,12 +79,12 @@ msgstr "Prekliči"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Dejanja"
@@ -135,19 +135,19 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Del"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Deli"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr ""
@@ -261,7 +261,7 @@ msgstr ""
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr ""
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr ""
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr ""
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr ""
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr ""
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr ""
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr ""
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr ""
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr ""
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/sr/messages.po b/src/frontend/src/locales/sr/messages.po
index e2c138b199..6376a9aea9 100644
--- a/src/frontend/src/locales/sr/messages.po
+++ b/src/frontend/src/locales/sr/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: sr\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Serbian (Latin)\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
@@ -79,12 +79,12 @@ msgstr "Poništi"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Akcije"
@@ -135,19 +135,19 @@ msgstr "Ne"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Deo"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Delovi"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Delovi proizvođača"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Kategorija delova"
@@ -261,7 +261,7 @@ msgstr "Kategorije delova"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Stavke zaliha"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Lokacija zaliha"
@@ -328,7 +328,7 @@ msgstr "Nalog za izradu"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Kodovi projekta"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Narudžbenica"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Nalog za prodaju"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Nalog za povrat"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "Isteklo je vreme zahteva"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr "Potreban je korisnik sa većim pravom pristupa"
msgid "This widget requires superuser permissions"
msgstr "Ovaj vidžet zahteva specijalne dozvole"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Nema novosti"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Nema nepročitanih novosti"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Ukloniti sliku sa ovog predmeta?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Kod"
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Pregled nije moguć, klikni na \"Ponovo učitaj pregled\"."
@@ -1728,11 +1729,11 @@ msgstr "sačuvaj trenutni šablon i ponovo učitaj pregled"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Izaberi instancu za pregled"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Greška prilikom generisanja šablona"
@@ -1829,20 +1830,20 @@ msgstr "Uspešno prijavljivanje"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Neuspešna prijava"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Proverite svoj unos i pokušajte ponovno."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Isporuka pošte uspešna"
@@ -2075,7 +2076,7 @@ msgstr "API Verzija"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Ekstenzije"
@@ -2128,6 +2129,7 @@ msgstr "Nepoznato"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Pretraži…"
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Učitavanje"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Nema pronađenih rezultata"
@@ -2247,7 +2250,7 @@ msgstr "Obrađivanje podataka"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Desila se greška"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Dodaj"
@@ -2871,8 +2874,8 @@ msgstr "Korisnička podešavanja"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Sistemska podešavanja"
@@ -2921,11 +2924,11 @@ msgstr "Odjavljivanje"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Zalihe"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Proizvodnja"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Kupovina"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navigacija"
msgid "About"
msgstr "O nama"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Prilozi"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Kategorija"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Serijski broj"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Serijski broj"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Količina"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Serija"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Dobavljač"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Učitavanje"
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "Deo dodat u nalog za kupovinu"
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "Novi deo dobavljača"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "Novi nalog za kupovinu"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "Dodaj u izabrani nalog za kupovinu"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Nema izabranih delova"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "Nema izabranih delova koji se mogu kupiti"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Delovi dodati"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Svi izabrani delovi su dodati nalogu za kupovinu"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Morate izabrati bar jedan deo za naručivanje"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "Deo dobavljača je neophodan"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "Količina je neophodna"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "Nevažeći izbor dela"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "Molimo ispravite greške u izabranim delovima"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Doradi pakovanje"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Promeni status"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Unesi kod serije za primljene stavke"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Serijski brojevi"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Dodaj primljenu količinu kao pakovanje umesto kao individualnu stavku"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Unesi početnu količinu za ovu stavku zalihe"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Unesi serijske brojeve za novu zalihu (ili ostavi nepopunjeno)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Status zalihe"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Dodaj stavku zalihe"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "Izaberi deo za instalaciju"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Potvrdi transfer zalihe"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Premesti na podrazumevanu lokaciju"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Premesti"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "Vrati"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Premesti"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "Vrati"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Računaj"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Dodaj zalihu"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Zaliha dodata"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Ukloni zalihu"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Zaliha uklonjena"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Prebaci zalihu"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Zaliha prebačena"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Prebroj zalihe"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Zaliha prebrojena"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Promeni status zalihe"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Status zalihe izmenjen"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Spoji zalihe"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Zalihe spojene"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Dodeli zalihu mušteriji"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Zaliha dodeljena mušteriji"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Izbriši stavku zalihe"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Zaliha izbrisana"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Lokacija roditeljske zalihe"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr "Interna serverska greška"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Odjavljen"
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Uspešno ste odjavljeni"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Proverite u primljenoj pošti da li imate link za resetovanje. Proverite i u spamu"
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Resetovanje neuspešno"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Ulogovani ste"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Uspešno ste se ulogovali"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Lozinka podešena"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Lozinka je uspešno podešena. Sada se možete prijaviti sa novom lozinkom"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "Lozinku nije bilo moguće promeniti"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Lozinka promenjena"
@@ -7287,15 +7295,15 @@ msgstr "Cene"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Praćenje zaliha"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr "Akcije dela"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/sv/messages.po b/src/frontend/src/locales/sv/messages.po
index 7188f93543..b7025132bd 100644
--- a/src/frontend/src/locales/sv/messages.po
+++ b/src/frontend/src/locales/sv/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: sv\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Avbryt"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Åtgärder"
@@ -135,19 +135,19 @@ msgstr "Nej"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Artkel"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Artiklar"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Tillverkarens artiklar"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Artikel Kategori"
@@ -261,7 +261,7 @@ msgstr "Artikelkategorier"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Artikel i lager"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Lagerplats"
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Projektkoder"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Inköpsorder"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Försäljningsorder"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Returorder"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Inga nyheter"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Vill du ta bort den associerade bilden från denna artikel?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Kod"
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Förhandsgranska ej tillgänglig, klicka på \"Ladda om förhandsgranskning\"."
@@ -1728,11 +1729,11 @@ msgstr "Spara den aktuella mallen och ladda om förhandsgranskningen"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Välj instans att förhandsgranska"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Fel vid rendering av mall"
@@ -1829,20 +1830,20 @@ msgstr "Inloggningen lyckades"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Inloggningen misslyckades"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Kontrollera din inmatning och försök igen."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "E-postleverans lyckad"
@@ -2075,7 +2076,7 @@ msgstr "API Version"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Plugins"
@@ -2128,6 +2129,7 @@ msgstr "Okategoriserade"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Sök..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Laddar"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Inga resultat hittades"
@@ -2247,7 +2250,7 @@ msgstr "Bearbetar data"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Ett fel inträffade"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Ändra"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Lägg till"
@@ -2871,8 +2874,8 @@ msgstr "Användarinställningar"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Systeminställningar"
@@ -2921,11 +2924,11 @@ msgstr "Logga ut"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Lagersaldo"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Inköp"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Navigering"
msgid "About"
msgstr "Om"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Bilagor"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Kategori"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Serienummer"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Serienummer"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Antal"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Leverantör"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Laddar..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "Inga delar valda"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Delar tillagda"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Ändra status"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Serienummer"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Flytta"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Flytta"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Sammanfoga lager"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Ta bort lagerartikel"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Överordnad lagerplats"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Utloggad"
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Utloggningen lyckades"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Tema ändrat"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Kolla din inkorg för en återställningslänk. Detta fungerar bara om du har ett konto. Kontrollera även i skräppost."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Återställningen misslyckades"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Redan inloggad"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Inloggad"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Inloggning lyckades"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Lösenord sparat!"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Ditt lösenord har sparats. Du kan nu logga in med ditt nya lösenord."
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "Lösenord ändrat"
@@ -7287,15 +7295,15 @@ msgstr "Prissättning"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr "Artikel åtgärder"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/th/messages.po b/src/frontend/src/locales/th/messages.po
index f20f266c33..ae5d714516 100644
--- a/src/frontend/src/locales/th/messages.po
+++ b/src/frontend/src/locales/th/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: th\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -79,12 +79,12 @@ msgstr ""
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr ""
@@ -135,19 +135,19 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr ""
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr ""
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr ""
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr ""
@@ -261,7 +261,7 @@ msgstr ""
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr ""
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr ""
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr ""
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr ""
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr ""
@@ -1728,11 +1729,11 @@ msgstr ""
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr ""
@@ -1829,20 +1830,20 @@ msgstr ""
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr ""
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr ""
@@ -2075,7 +2076,7 @@ msgstr ""
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr ""
@@ -2128,6 +2129,7 @@ msgstr ""
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr ""
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr ""
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr ""
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr ""
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr ""
@@ -2921,11 +2924,11 @@ msgstr ""
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr ""
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr ""
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr ""
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr ""
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr ""
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr ""
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr ""
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr ""
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr ""
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr ""
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr ""
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr ""
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/tr/messages.po b/src/frontend/src/locales/tr/messages.po
index c88c3971c2..7a6d41feea 100644
--- a/src/frontend/src/locales/tr/messages.po
+++ b/src/frontend/src/locales/tr/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: tr\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -79,12 +79,12 @@ msgstr "Vazgeç"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Eylemler"
@@ -135,19 +135,19 @@ msgstr "Hayır"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Parça"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Parçalar"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Üretici Parçaları"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Parça Kategorisi"
@@ -261,7 +261,7 @@ msgstr "Parça Kategorileri"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Stok Kalemleri"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Stok Konumu"
@@ -328,7 +328,7 @@ msgstr "Üretim Emri"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Proje Kodları"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Satın Alma Siparişi"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Satış Siparişi"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "İade Emri"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr "Aktarım Emri"
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr "Seçim Kayıtları"
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "İstek zaman aşımı"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "İşlem başarısız"
@@ -1391,11 +1392,11 @@ msgstr "Süper Kullanıcı Gerekir"
msgid "This widget requires superuser permissions"
msgstr "Bu kart süper kullanıcı izinleri gerektirir"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "Haber yok"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "Burada okunmamış haber yok"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Bu ögeyle ilişkilendirilmiş görsel kaldırılsın mı?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Kod"
msgid "Error rendering preview"
msgstr "Önizleme görüntüleme hatası"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Önizleme kullanılamıyor, \"Önizlemeyi Yeniden Yükle\"'ye tıklayın."
@@ -1728,11 +1729,11 @@ msgstr "Mevcut şablonu kaydet ve önizlemeyi yeniden yükle"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Önizlenecek örneği seçin"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Şablonu işleme hatası"
@@ -1829,20 +1830,20 @@ msgstr "Başarıyla giriş yapıldı"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Giriş başarısız"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Lütfen bilgilerinizi kontrol edin ve yeniden giriş yapın."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "E-posta teslimi başarılı"
@@ -2075,7 +2076,7 @@ msgstr "API Sürümü"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Eklentiler"
@@ -2128,6 +2129,7 @@ msgstr "Kategorisiz"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Ara..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Yükleniyor"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Hiçbir şey bulunamadı"
@@ -2247,7 +2250,7 @@ msgstr "Veri İşleniyor"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Bir hata oluştu"
@@ -2269,7 +2272,7 @@ msgstr "Sütun seçin veya bu alanı yok saymak için boş bırakın."
#: src/components/importer/ImporterColumnSelector.tsx:202
msgid "Auto"
-msgstr ""
+msgstr "Otomatik"
#: src/components/importer/ImporterColumnSelector.tsx:305
msgid "Ignore this field"
@@ -2297,7 +2300,7 @@ msgstr "İçe Aktarılmış Sütun"
#: src/components/importer/ImporterColumnSelector.tsx:340
msgid "Lookup Field"
-msgstr ""
+msgstr "Arama Alanı"
#: src/components/importer/ImporterColumnSelector.tsx:341
msgid "Default Value"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "Değiştir"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Ekle"
@@ -2871,8 +2874,8 @@ msgstr "Kullanıcı Ayarları"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Sistem Ayarları"
@@ -2921,11 +2924,11 @@ msgstr "Çıkış"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Stok"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Üretim"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Satın Alma"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Gezinme"
msgid "About"
msgstr "Hakkında"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "Navigasyon ağacını yükleme hatası."
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Ekler"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Kategori"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Seri Numarası"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Seri Numarası"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Miktar"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Parti"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Tedarikçi"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Yükleniyor..."
@@ -4053,7 +4060,7 @@ msgstr "Parçayı içe aktarma başarısız oldu: "
#: src/components/wizards/ImportPartWizard.tsx:641
msgid "Are you sure, you want to import the supplier and manufacturer part into this part?"
-msgstr ""
+msgstr "Bu parçaya tedarikçi ve üretici bilgilerini aktarmak istediğinizden emin misiniz?"
#: src/components/wizards/ImportPartWizard.tsx:655
msgid "Import"
@@ -4061,28 +4068,28 @@ msgstr "İçe aktar"
#: src/components/wizards/ImportPartWizard.tsx:692
msgid "Parameters created successfully!"
-msgstr ""
+msgstr "Parametreler başarıyla oluşturuldu!"
#: src/components/wizards/ImportPartWizard.tsx:720
msgid "Failed to create parameters, please fix the errors and try again"
-msgstr ""
+msgstr "Parametreleri oluşturulamadı, lütfen hataları düzeltip yeniden deneyin"
#. placeholder {0}: supplierPart?.supplier
#: src/components/wizards/ImportPartWizard.tsx:740
msgid "Part imported successfully from supplier {0}."
-msgstr ""
+msgstr "Parça, {0} tedarikçisinden başarıyla içe aktarıldı."
#: src/components/wizards/ImportPartWizard.tsx:753
msgid "Open Part"
-msgstr ""
+msgstr "Parçayı Aç"
#: src/components/wizards/ImportPartWizard.tsx:760
msgid "Open Supplier Part"
-msgstr ""
+msgstr "Tedarikçi Parçasını Aç"
#: src/components/wizards/ImportPartWizard.tsx:767
msgid "Open Manufacturer Part"
-msgstr ""
+msgstr "Üretici Parçasını Aç"
#: src/components/wizards/ImportPartWizard.tsx:797
#: src/tables/part/PartTable.tsx:499
@@ -4091,11 +4098,11 @@ msgstr ""
#: src/components/wizards/ImportPartWizard.tsx:803
msgid "Import Supplier Part"
-msgstr ""
+msgstr "Tedarikçi Parçası İçe Aktar"
#: src/components/wizards/ImportPartWizard.tsx:805
msgid "Search Supplier Part"
-msgstr ""
+msgstr "Tedarikçi Parçası Ara"
#: src/components/wizards/ImportPartWizard.tsx:807
msgid "Confirm import"
@@ -4107,28 +4114,28 @@ msgstr "Bitti"
#: src/components/wizards/OrderPartsWizard.tsx:75
msgid "Error fetching part requirements"
-msgstr ""
+msgstr "Parça gereksinimleri alınırken hata oluştu"
#: src/components/wizards/OrderPartsWizard.tsx:113
msgid "Requirements"
-msgstr ""
+msgstr "Gereksinimler"
#: src/components/wizards/OrderPartsWizard.tsx:117
msgid "Build Requirements"
-msgstr ""
+msgstr "Üretim Gereksinimleri"
#: src/components/wizards/OrderPartsWizard.tsx:123
msgid "Sales Requirements"
-msgstr ""
+msgstr "Satış Gereksinimleri"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4141,19 +4148,19 @@ msgstr "Stokta"
#: src/components/wizards/OrderPartsWizard.tsx:146
#: src/tables/build/BuildLineTable.tsx:409
msgid "Required Quantity"
-msgstr ""
+msgstr "Gereken Miktar"
#: src/components/wizards/OrderPartsWizard.tsx:205
msgid "New Purchase Order"
-msgstr ""
+msgstr "Yeni Satın Alma Siparişi"
#: src/components/wizards/OrderPartsWizard.tsx:207
msgid "Purchase order created"
-msgstr ""
+msgstr "Satın alma siparişi oluşturuldu"
#: src/components/wizards/OrderPartsWizard.tsx:219
msgid "New Supplier Part"
-msgstr ""
+msgstr "Yeni Tedarikçi Parçası"
#: src/components/wizards/OrderPartsWizard.tsx:221
#: src/tables/purchasing/SupplierPartTable.tsx:218
@@ -4163,80 +4170,80 @@ msgstr "Tedarikçi parçası oluşturuldu"
#: src/components/wizards/OrderPartsWizard.tsx:249
msgid "Add to Purchase Order"
-msgstr ""
+msgstr "Satın Alma Siparişine Ekle"
#: src/components/wizards/OrderPartsWizard.tsx:261
msgid "Part added to purchase order"
-msgstr ""
+msgstr "Parça, satın alma siparişine eklendi"
#: src/components/wizards/OrderPartsWizard.tsx:306
msgid "Select supplier part"
-msgstr ""
+msgstr "Tedarikçi parçası seç"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
-msgstr ""
+msgstr "Tedarikçi parça numarasını kopyala"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
-msgstr ""
+msgstr "Yeni tedarikçi parçası"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
-msgstr ""
+msgstr "Satın alma siparişi seç"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
-msgstr ""
+msgstr "Yeni satın alma siparişi"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
-msgstr ""
+msgstr "Seçili satın alma siparişine ekle"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
-msgstr ""
+msgstr "Hiç parça seçilmedi"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
-msgstr ""
+msgstr "Hiç satın alınabilir parça seçilmedi"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
-msgstr ""
+msgstr "Parçalar Eklendi"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
-msgstr ""
+msgstr "Seçilen tüm parçalar bir satın alma siparişine eklendi"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
-msgstr ""
+msgstr "Sipariş etmek için en az bir parça seçilmelidir"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
-msgstr ""
+msgstr "Tedarikçi parçası gereklidir"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
-msgstr ""
+msgstr "Miktar gereklidir"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
-msgstr ""
+msgstr "Geçersiz parça seçimi"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
-msgstr ""
+msgstr "Lütfen seçilen parçalardaki hataları düzeltin"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
#: src/tables/stock/TransferOrderLineItemTable.tsx:330
msgid "Order Parts"
-msgstr ""
+msgstr "Parçaları Sipariş Et"
#: src/contexts/LanguageContext.tsx:22
#~ msgid "Arabic"
@@ -4393,7 +4400,7 @@ msgstr ""
#: src/defaults/actions.tsx:41
#: src/defaults/actions.tsx:113
msgid "Hotkeys"
-msgstr ""
+msgstr "Kısayol tuşları"
#: src/defaults/actions.tsx:41
#: src/defaults/links.tsx:118
@@ -4419,7 +4426,7 @@ msgstr "Sunucu Bilgisi"
#: src/defaults/actions.tsx:86
#: src/defaults/links.tsx:180
msgid "About this InvenTree instance"
-msgstr ""
+msgstr "Bu InvenTree örneği hakkında"
#: src/defaults/actions.tsx:92
#: src/defaults/links.tsx:164
@@ -4441,47 +4448,47 @@ msgstr "Ana gezinme menüsünü aç"
#: src/defaults/actions.tsx:107
msgid "Go to your user settings"
-msgstr ""
+msgstr "Kullanıcı ayarlarınıza gidin"
#: src/defaults/actions.tsx:114
msgid "View a list of available hotkeys"
-msgstr ""
+msgstr "Kullanılabilir kısayol tuşlarının listesini görüntüle"
#: src/defaults/actions.tsx:123
msgid "Import Data"
-msgstr ""
+msgstr "Veri İçe Aktar"
#: src/defaults/actions.tsx:124
msgid "Import data from a file"
-msgstr ""
+msgstr "Bir dosyadan veri içe aktar"
#: src/defaults/actions.tsx:134
msgid "Go to Purchase Orders"
-msgstr ""
+msgstr "Satın Alma Siparişlerine Git"
#: src/defaults/actions.tsx:144
msgid "Go to Sales Orders"
-msgstr ""
+msgstr "Satış Siparişlerine Git"
#: src/defaults/actions.tsx:155
msgid "Go to Transfer Orders"
-msgstr ""
+msgstr "Aktarım Emirlerine Git"
#: src/defaults/actions.tsx:166
msgid "Go to Return Orders"
-msgstr ""
+msgstr "İade Siparişlerine Git"
#: src/defaults/actions.tsx:176
msgid "Scan a barcode or QR code"
-msgstr ""
+msgstr "Bir barkod veya QR kodu tara"
#: src/defaults/actions.tsx:185
msgid "Go to Build Orders"
-msgstr ""
+msgstr "Üretim Emirlerine Git"
#: src/defaults/actions.tsx:194
msgid "Go to System Settings"
-msgstr ""
+msgstr "Sistem Ayarlarına Git"
#: src/defaults/actions.tsx:203
msgid "Go to the Admin Center"
@@ -4489,19 +4496,19 @@ msgstr "Yönetim Merkezine Git"
#: src/defaults/actions.tsx:212
msgid "Error Logs"
-msgstr ""
+msgstr "Hata Kayıtları"
#: src/defaults/actions.tsx:213
msgid "View error logs for this instance"
-msgstr ""
+msgstr "Bu örneğe ait hata günlüklerini görüntüle"
#: src/defaults/actions.tsx:223
msgid "Manage user accounts"
-msgstr ""
+msgstr "Kullanıcı hesaplarını yönet"
#: src/defaults/actions.tsx:233
msgid "Manage InvenTree plugins"
-msgstr ""
+msgstr "InvenTree eklentilerini yönet"
#: src/defaults/actions.tsx:242
#: src/pages/Index/Settings/AdminCenter/Index.tsx:240
@@ -4512,15 +4519,15 @@ msgstr "Makineler"
#: src/defaults/actions.tsx:243
msgid "Manage machines and machine types"
-msgstr ""
+msgstr "Makineleri ve makine türlerini yönet"
#: src/defaults/actions.tsx:253
msgid "Manage report templates"
-msgstr ""
+msgstr "Rapor şablonlarını yönet"
#: src/defaults/actions.tsx:263
msgid "Manage label templates"
-msgstr ""
+msgstr "Etiket şablonlarını yönet"
#: src/defaults/dashboardItems.tsx:29
#~ msgid "Latest Parts"
@@ -4564,15 +4571,15 @@ msgstr ""
#: src/defaults/defaultHostList.tsx:10
msgid "Local Server"
-msgstr ""
+msgstr "Yerel Sunucu"
#: src/defaults/defaultHostList.tsx:12
msgid "InvenTree Demo"
-msgstr ""
+msgstr "InvenTree Demo"
#: src/defaults/defaultHostList.tsx:14
msgid "Current Server"
-msgstr ""
+msgstr "Mevcut Sunucu"
#: src/defaults/links.tsx:17
#~ msgid "GitHub"
@@ -4626,11 +4633,11 @@ msgstr "Sıkça sorulan sorular"
#: src/defaults/links.tsx:125
msgid "GitHub Repository"
-msgstr ""
+msgstr "Github Deposu"
#: src/defaults/links.tsx:128
msgid "InvenTree source code on GitHub"
-msgstr ""
+msgstr "InvenTree'nin Github'daki kaynak kodu"
#: src/defaults/links.tsx:134
#~ msgid "Licenses"
@@ -4643,11 +4650,11 @@ msgstr "Sistem Bilgisi"
#: src/defaults/links.tsx:187
msgid "Licenses for dependencies of the InvenTree software"
-msgstr ""
+msgstr "InvenTree yazılımının bağımlılıklarının lisansları"
#: src/defaults/links.tsx:198
msgid "About the InvenTree Project"
-msgstr ""
+msgstr "InvenTree Projesi Hakkında"
#: src/defaults/menuItems.tsx:7
#~ msgid "Open sourcea"
@@ -4767,23 +4774,23 @@ msgstr ""
#: src/forms/BomForms.tsx:43
msgid "Required component quantity"
-msgstr ""
+msgstr "Gerekli bileşen miktarı"
#: src/forms/BomForms.tsx:123
msgid "Substitute Part"
-msgstr ""
+msgstr "Muadil Parça"
#: src/forms/BomForms.tsx:140
msgid "Edit BOM Substitutes"
-msgstr ""
+msgstr "BOM Muadillerini Düzenle"
#: src/forms/BomForms.tsx:147
msgid "Add Substitute"
-msgstr ""
+msgstr "Muadil Ekle"
#: src/forms/BomForms.tsx:148
msgid "Substitute added"
-msgstr ""
+msgstr "Muadil eklendi"
#: src/forms/BuildForms.tsx:112
#: src/forms/BuildForms.tsx:217
@@ -4806,7 +4813,7 @@ msgstr "Üretim Çıktısı"
#: src/forms/BuildForms.tsx:370
msgid "Quantity to Complete"
-msgstr ""
+msgstr "Tamamlanacak Miktar"
#: src/forms/BuildForms.tsx:372
#: src/forms/BuildForms.tsx:454
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -4848,7 +4855,7 @@ msgstr "Üretim Çıktılarını Tamamla"
#: src/forms/BuildForms.tsx:452
msgid "Quantity to Scrap"
-msgstr ""
+msgstr "Hurdaya Ayrılacak Miktar"
#: src/forms/BuildForms.tsx:470
#~ msgid "Remove line"
@@ -4861,11 +4868,11 @@ msgstr "Üretim Çıktılarını Hurdaya Ayır"
#: src/forms/BuildForms.tsx:477
msgid "Selected build outputs will be completed, but marked as scrapped"
-msgstr ""
+msgstr "Seçili üretim çıktıları tamamlanacak, ancak hurda olarak işaretlenecektir"
#: src/forms/BuildForms.tsx:479
msgid "Allocated stock items will be consumed"
-msgstr ""
+msgstr "Tahsis edilen stok kalemleri tüketilecektir"
#: src/forms/BuildForms.tsx:538
#: src/forms/BuildForms.tsx:540
@@ -4874,11 +4881,11 @@ msgstr "Üretim Çıktılarını İptal Et"
#: src/forms/BuildForms.tsx:542
msgid "Selected build outputs will be removed"
-msgstr ""
+msgstr "Seçili üretim çıktıları kaldırılacaktır"
#: src/forms/BuildForms.tsx:544
msgid "Allocated stock items will be returned to stock"
-msgstr ""
+msgstr "Tahsis edilen stok kalemleri stoka iade edilecektir"
#: src/forms/BuildForms.tsx:684
#: src/pages/build/BuildDetail.tsx:267
@@ -4921,7 +4928,7 @@ msgstr "Kaynak Konum"
#: src/forms/SalesOrderForms.tsx:427
#: src/forms/TransferOrderForms.tsx:225
msgid "Select the source location for the stock allocation"
-msgstr ""
+msgstr "Stok tahsisi için kaynak konumu seç"
#: src/forms/BuildForms.tsx:753
#: src/forms/SalesOrderForms.tsx:468
@@ -4942,7 +4949,7 @@ msgstr "Stoku Tahsis Et"
#: src/forms/SalesOrderForms.tsx:473
#: src/forms/TransferOrderForms.tsx:263
msgid "Stock items allocated"
-msgstr ""
+msgstr "Stok kalemleri tahsis edildi"
#: src/forms/BuildForms.tsx:817
#: src/forms/BuildForms.tsx:918
@@ -4963,13 +4970,13 @@ msgstr ""
#: src/tables/build/BuildLineTable.tsx:934
#: src/tables/stock/TransferOrderTable.tsx:56
msgid "Consume Stock"
-msgstr ""
+msgstr "Stoku Tüket"
#: src/forms/BuildForms.tsx:907
#: src/tables/build/BuildLineTable.tsx:522
#: src/tables/part/PartBuildAllocationsTable.tsx:101
msgid "Fully consumed"
-msgstr ""
+msgstr "Tümüyle tüketildi"
#: src/forms/BuildForms.tsx:952
#: src/tables/build/BuildLineTable.tsx:192
@@ -4979,12 +4986,12 @@ msgstr "Tüketildi"
#: src/forms/CommonFields.tsx:16
msgid "Tags for this item"
-msgstr ""
+msgstr "Bu öge için etiketler"
#: src/forms/CommonFields.tsx:17
#: src/tables/Filter.tsx:414
msgid "Select tags"
-msgstr ""
+msgstr "Etiketleri seç"
#: src/forms/CommonForms.tsx:94
#: src/forms/PurchaseOrderForms.tsx:195
@@ -4992,7 +4999,7 @@ msgstr ""
#: src/forms/SalesOrderForms.tsx:198
#: src/forms/TransferOrderForms.tsx:95
msgid "Select project code for this line item"
-msgstr ""
+msgstr "Bu satır ögesi için proje kodu seç"
#: src/forms/CompanyForms.tsx:150
#~ msgid "Company updated"
@@ -5013,7 +5020,7 @@ msgstr "Takip ediliyor"
#: src/forms/PartForms.tsx:111
msgid "Subscribe to notifications for this part"
-msgstr ""
+msgstr "Bu parçanın bildirmlerine abone ol"
#: src/forms/PartForms.tsx:129
#~ msgid "Part updated"
@@ -5025,7 +5032,7 @@ msgstr "Üst parça kategorisi"
#: src/forms/PartForms.tsx:245
msgid "Subscribe to notifications for this category"
-msgstr ""
+msgstr "Bu kategorinin bildirimlerine abone ol"
#: src/forms/PurchaseOrderForms.tsx:421
#~ msgid "Assign Batch Code{0}"
@@ -5070,7 +5077,7 @@ msgstr "Sanal Parça"
#: src/forms/PurchaseOrderForms.tsx:566
msgid "This part is virtual, no physical stock will be received."
-msgstr ""
+msgstr "Bu parça sanaldır; fiziksel stok teslim alınmayacaktır."
#: src/forms/PurchaseOrderForms.tsx:566
#~ msgid "Serial numbers"
@@ -5090,19 +5097,19 @@ msgstr "Parti Kodu Ata"
#: src/forms/PurchaseOrderForms.tsx:620
msgid "Assign Serial Numbers"
-msgstr ""
+msgstr "Seri Numaraları Ata"
#: src/forms/PurchaseOrderForms.tsx:632
msgid "Set Expiry Date"
msgstr "Son Kullanma Tarihi Belirle"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Paketlemeyi Ayarla"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Durumu Değiştir"
@@ -5143,16 +5150,16 @@ msgstr "Parti Kodu"
#: src/forms/PurchaseOrderForms.tsx:776
msgid "Enter batch code for received items"
-msgstr ""
+msgstr "Teslim alınan ögeler için parti kodu gir"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Seri Numaraları"
#: src/forms/PurchaseOrderForms.tsx:790
msgid "Enter serial numbers for received items"
-msgstr ""
+msgstr "Teslim alınan ögeler için seri numaraları gir"
#: src/forms/PurchaseOrderForms.tsx:807
#: src/pages/stock/StockDetail.tsx:393
@@ -5162,10 +5169,10 @@ msgstr "Son Kullanma Tarihi"
#: src/forms/PurchaseOrderForms.tsx:808
msgid "Enter an expiry date for received items"
-msgstr ""
+msgstr "Teslim alınan ögeler için bir geçerlilik tarihi gir"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5199,56 +5206,56 @@ msgstr "Kalemleri Teslim Al"
#: src/forms/PurchaseOrderForms.tsx:940
msgid "Items received"
-msgstr ""
+msgstr "Ögeler teslim alındı"
#: src/forms/ReturnOrderForms.tsx:261
msgid "Receive Items"
-msgstr ""
+msgstr "Ögeleri Teslim Al"
#: src/forms/ReturnOrderForms.tsx:268
msgid "Item received into stock"
-msgstr ""
+msgstr "Öge stoka teslim alındı"
#. placeholder {0}: salePrice ? `; suggested: (${salePrice})` : '.'
#: src/forms/SalesOrderForms.tsx:190
msgid "Price based on part and quantity differs{0}"
-msgstr ""
+msgstr "Parça ve miktara göre fiyat farklılık gösterir{0}"
#: src/forms/SalesOrderForms.tsx:221
#: src/forms/SalesOrderForms.tsx:223
#: src/tables/sales/SalesOrderShipmentTable.tsx:211
msgid "Check Shipment"
-msgstr ""
+msgstr "Sevkiyatı Kontrol Et"
#: src/forms/SalesOrderForms.tsx:224
msgid "Marking the shipment as checked indicates that you have verified that all items included in this shipment are correct"
-msgstr ""
+msgstr "Gönderiyi “kontrol edildi” olarak işaretlemek, bu gönderide yer alan tüm ürünlerin doğru olduğunu doğruladığınızı gösterir"
#: src/forms/SalesOrderForms.tsx:234
msgid "Shipment marked as checked"
-msgstr ""
+msgstr "Sevkiyat kontrol edildi olarak işaretlendi"
#: src/forms/SalesOrderForms.tsx:249
#: src/forms/SalesOrderForms.tsx:251
#: src/tables/sales/SalesOrderShipmentTable.tsx:224
msgid "Uncheck Shipment"
-msgstr ""
+msgstr "Sevkiyat Kontrolünü İptal Et"
#: src/forms/SalesOrderForms.tsx:252
msgid "Marking the shipment as unchecked indicates that the shipment requires further verification"
-msgstr ""
+msgstr "Sevkiyatı “kontrol edilmemiş” olarak işaretlemek, gönderinin daha fazla doğrulama gerektirdiğini gösterir"
#: src/forms/SalesOrderForms.tsx:262
msgid "Shipment marked as unchecked"
-msgstr ""
+msgstr "Sevkiyat kontrol edilmemiş olarak işaretlendi"
#: src/forms/SalesOrderForms.tsx:280
msgid "Completing shipment"
-msgstr ""
+msgstr "Sevkiyat tamamlanıyor"
#: src/forms/SalesOrderForms.tsx:281
msgid "Shipment completed successfully"
-msgstr ""
+msgstr "Sevkiyat başarıyla tamamlandı"
#: src/forms/SalesOrderForms.tsx:288
#: src/tables/sales/SalesOrderShipmentTable.tsx:234
@@ -5257,7 +5264,7 @@ msgstr "Gönderiyi Tamamla"
#: src/forms/SalesOrderForms.tsx:534
msgid "Leave blank to use the order address"
-msgstr ""
+msgstr "Sipariş adresini kullanmak için boş bırakın"
#: src/forms/StockForms.tsx:110
#~ msgid "Create Stock Item"
@@ -5267,220 +5274,221 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Verilen miktarı tekli ögeler yerine paketler olarak ekle"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Bu stok kalemi için başlangıç miktarını girin"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Yeni stok için seri numaralarını girin (veya boş bırakın)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Stok Durumu"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Stok Kalemi Ekle"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
-msgstr ""
+msgstr "Takılacak parçayı seç"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "Stok Transferini Onayla"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
-msgstr ""
+msgstr "Stok İadesini Onayla"
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Varsayılan konuma taşı"
-#: src/forms/StockForms.tsx:842
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
+msgid "Merge into existing stock"
+msgstr "Mevcut stokla birleştir"
+
+#: src/forms/StockForms.tsx:869
msgid "Move"
msgstr "Taşı"
-#: src/forms/StockForms.tsx:890
+#: src/forms/StockForms.tsx:917
msgid "Return"
msgstr "Geri Dön"
-#: src/forms/StockForms.tsx:905
-msgid "Merge into existing stock"
-msgstr ""
-
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
-msgstr ""
+msgstr "Mümkünse iade edilen kalemleri mevcut stok kalemleri ile birleştir"
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
-msgstr ""
+msgstr "Stok işlem notları"
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Say"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Stok Ekle"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Stok Eklendi"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
-msgstr ""
+msgstr "Seçilen stok kalemlerinin miktarını belirtilen miktarda artır."
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Stok Kaldır"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Stok Kaldırıldı"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
-msgstr ""
+msgstr "Seçilen stok kalemlerinin miktarını belirtilen miktarda azalt."
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Stoku Aktar"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "Stok Transfer Edildi"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
-msgstr ""
+msgstr "Seçilen kalemleri belirtilen konuma aktar."
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
-msgstr ""
+msgstr "Stock İade Et"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
-msgstr ""
+msgstr "Stok iade edildi"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
-msgstr ""
+msgstr "Seçilen kalemleri belirtilen konumdaki stoka iade et."
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Stoku Say"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "Stok Sayıldı"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
-msgstr ""
+msgstr "Seçilen stok kalemlerini say ve miktarı ona göre ayarla."
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Stok Durumunu Değiştir"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "Stok Durumu Değişti"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
-msgstr ""
+msgstr "Seçilen stok kalemlerinin durumunu değiştir."
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
-msgstr ""
+msgstr "Parti Kodunu Değiştir"
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
-msgstr ""
+msgstr "Seçilen stok kalemlerinin parti kodunu değiştir"
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Stoku Birleştir"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "Stok Birleştirildi"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
-msgstr ""
+msgstr "Stok Kalemlerini Birleştir"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
-msgstr ""
+msgstr "Birleştirme işlemi geri alınamaz"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
-msgstr ""
+msgstr "Kalemleri birleştirirken takip bilgileri kaybolabilir"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
-msgstr ""
+msgstr "Kalemleri birleştirirken tedarikçi bilgileri kaybolabilir"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "Stoku Müşteriye Ata"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "Stok Müşteriye Atandı"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Stok Kalemlerini Sil"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "Stok Silindi"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
-msgstr ""
+msgstr "Bu işlem seçilen stok kalemlerini kalıcı olarak silecektir."
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Üst stok konumu"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "Seri Numarası Bul"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "Eşleşen ürün bulunamadı"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
-msgstr ""
+msgstr "Birden fazla eşleşen öge"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
-msgstr ""
+msgstr "Sunucudan geçersiz yanıt"
#: src/forms/selectionListFields.tsx:95
#~ msgid "Entries"
@@ -5539,111 +5547,111 @@ msgstr "Dahili sunucu hatası"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Çıkış Yapıldı"
#: src/functions/auth.tsx:125
msgid "There was a conflicting session for this browser, which has been logged out."
-msgstr ""
+msgstr "Bu tarayıcı için çakışan bir oturum vardı; bu oturumdan çıkış yapıldı."
#: src/functions/auth.tsx:142
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "Sunucudan yanıt yok."
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "Sunucudan yanıt yok."
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
-msgstr ""
+msgstr "MFA girişi başarılı"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
-msgstr ""
+msgstr "MFA bilgileri tarayıcıda otomatik olarak girildi"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Başarıyla çıkış yapıldı"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
-msgstr ""
+msgstr "Dil değişti"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
-msgstr ""
+msgstr "Aktif diliniz, profilinizde ayarlanan dile değiştirildi"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "Tema değişti"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
-msgstr ""
+msgstr "Etkin temanız, profilinizde ayarlanan temaya değiştirildi"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Bir sıfırlama bağlantısı için gelen kutunuzu veya spam kutunuzu yoklayın. Bu yalnızca bir hesabınız varsa çalışacaktır."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Sıfırlama başarısız"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Zaten giriş yapıldı"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
-msgstr ""
+msgstr "Sunucuda bu tarayıcıya ait çakışan bir oturum bulunmaktadır. Lütfen önce o oturumdan çıkış yapın."
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Giriş Yapıldı"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Başarıyla giriş yapıldı"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
-msgstr ""
+msgstr "MFA kurulamadı"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
-msgstr ""
+msgstr "MFA kurulumu başarılı"
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
-msgstr ""
+msgstr "TOTP yoluyla MFA başarıyla kuruldu; yeniden oturum açmanız gerekecektir."
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Şifre belirlendi"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Şifreniz başarıyla değiştirildi. Artık yeni şifrenizle giriş yapabilirsiniz"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
-msgstr ""
+msgstr "Şifre değiştirilemedi"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
-msgstr ""
+msgstr "Girilen iki parola aynı değil"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
-msgstr ""
+msgstr "Şifre Değişti"
#: src/functions/forms.tsx:50
#~ msgid "Form method not provided"
@@ -5691,7 +5699,7 @@ msgstr "Ürünler Güncellendi"
#: src/hooks/UseForm.tsx:149
msgid "Update multiple items"
-msgstr ""
+msgstr "Birden çok ögeyi güncelle"
#: src/hooks/UseForm.tsx:179
msgid "Item Deleted"
@@ -5707,64 +5715,64 @@ msgstr "Bu ögeyi silmek istediğinize emin misiniz?"
#: src/hooks/UseRemotePlugin.tsx:102
msgid "Failed to load module: {moduleUrl}"
-msgstr ""
+msgstr "Modül yüklenemedi: {moduleUrl}"
#. placeholder {0}: typeof func
#: src/hooks/UseRemotePlugin.tsx:129
msgid "Export {exportName} in {moduleUrl} is not a function (found type {0})."
-msgstr ""
+msgstr "{moduleUrl} modülündeki '{exportName}' dışa aktarımı bir fonksiyon değil (tespit edilen tür: {0})."
#: src/hooks/UseRemotePlugin.tsx:131
msgid "Plugin entrypoint {exportName} does not exist in {moduleUrl}."
-msgstr ""
+msgstr "{moduleUrl} içinde {exportName} adlı eklenti giriş noktası bulunmuyor."
#: src/hooks/UseStockAdjustActions.tsx:104
msgid "Count selected stock items"
-msgstr ""
+msgstr "Seçili stok kalemlerini say"
#: src/hooks/UseStockAdjustActions.tsx:114
msgid "Add to selected stock items"
-msgstr ""
+msgstr "Seçili stok kalemlerine ekle"
#: src/hooks/UseStockAdjustActions.tsx:124
msgid "Remove from selected stock items"
-msgstr ""
+msgstr "Seçili stok kalemlerinden kaldır"
#: src/hooks/UseStockAdjustActions.tsx:134
msgid "Transfer selected stock items"
-msgstr ""
+msgstr "Seçili stok kalemlerini aktar"
#: src/hooks/UseStockAdjustActions.tsx:144
msgid "Merge selected stock items"
-msgstr ""
+msgstr "Seçili stok kalemlerini birleştir"
#: src/hooks/UseStockAdjustActions.tsx:154
msgid "Change status of selected stock items"
-msgstr ""
+msgstr "Seçili stok kalemlerinin durumunu değiştir"
#: src/hooks/UseStockAdjustActions.tsx:164
msgid "Change batch code of selected stock items"
-msgstr ""
+msgstr "Seçili stok kalemlerinin parti kodunu değiştir"
#: src/hooks/UseStockAdjustActions.tsx:172
msgid "Assign Stock"
-msgstr ""
+msgstr "Stok Ata"
#: src/hooks/UseStockAdjustActions.tsx:174
msgid "Assign selected stock items to a customer"
-msgstr ""
+msgstr "Seçili stok kalemlerini bir müşteriye ata"
#: src/hooks/UseStockAdjustActions.tsx:184
msgid "Return selected items into stock"
-msgstr ""
+msgstr "Seçili kalemleri stoka iade et"
#: src/hooks/UseStockAdjustActions.tsx:192
msgid "Delete Stock"
-msgstr ""
+msgstr "Stoku Sil"
#: src/hooks/UseStockAdjustActions.tsx:194
msgid "Delete selected stock items"
-msgstr ""
+msgstr "Seçili stok kalemlerini sil"
#: src/hooks/UseStockAdjustActions.tsx:219
#: src/pages/part/PartDetail.tsx:1095
@@ -5774,39 +5782,39 @@ msgstr "Stok Eylemleri"
#: src/pages/Auth/ChangePassword.tsx:32
#: src/pages/Auth/Reset.tsx:14
msgid "Reset Password"
-msgstr ""
+msgstr "Şifreyi Sıfırla"
#: src/pages/Auth/ChangePassword.tsx:46
msgid "Current Password"
-msgstr ""
+msgstr "Mevcut Şifre"
#: src/pages/Auth/ChangePassword.tsx:47
msgid "Enter your current password"
-msgstr ""
+msgstr "Mevcut şifrenizi girin"
#: src/pages/Auth/ChangePassword.tsx:53
msgid "New Password"
-msgstr ""
+msgstr "Yeni Şifre"
#: src/pages/Auth/ChangePassword.tsx:54
msgid "Enter your new password"
-msgstr ""
+msgstr "Yeni şifrenizi girin"
#: src/pages/Auth/ChangePassword.tsx:60
msgid "Confirm New Password"
-msgstr ""
+msgstr "Yeni Şifreyi Onayla"
#: src/pages/Auth/ChangePassword.tsx:61
msgid "Confirm your new password"
-msgstr ""
+msgstr "Yeni şifrenizi onaylayın"
#: src/pages/Auth/ChangePassword.tsx:80
msgid "Confirm"
-msgstr ""
+msgstr "Onayla"
#: src/pages/Auth/Layout.tsx:59
msgid "Log off"
-msgstr ""
+msgstr "Oturumu kapat"
#: src/pages/Auth/LoggedIn.tsx:19
msgid "Checking if you are already logged in"
@@ -5830,7 +5838,7 @@ msgstr "Giriş"
#: src/pages/Auth/Login.tsx:113
msgid "Logging you in"
-msgstr ""
+msgstr "Oturumunuz açılıyor"
#: src/pages/Auth/Login.tsx:120
msgid "Don't have an account?"
@@ -5852,36 +5860,36 @@ msgstr "Bir hesabınız yok mu?"
#: src/pages/Auth/MFA.tsx:29
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:86
msgid "Multi-Factor Authentication"
-msgstr ""
+msgstr "Çok Aşamalı Kimlik Doğrulama"
#: src/pages/Auth/MFA.tsx:33
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:219
msgid "TOTP Code"
-msgstr ""
+msgstr "TOTP Kodu"
#: src/pages/Auth/MFA.tsx:35
msgid "Enter one of your codes: {mfa_types}"
-msgstr ""
+msgstr "Kodlarınızdan birini girin: {mfa_types}"
#: src/pages/Auth/MFA.tsx:42
msgid "Remember this device"
-msgstr ""
+msgstr "Bu cihazı hatırla"
#: src/pages/Auth/MFA.tsx:44
msgid "If enabled, you will not be asked for MFA on this device for 30 days."
-msgstr ""
+msgstr "Etkinleştirilirse, bu cihazda 30 gün boyunca MFA istenmeyecektir."
#: src/pages/Auth/MFA.tsx:53
msgid "Log in"
-msgstr ""
+msgstr "Oturum aç"
#: src/pages/Auth/MFASetup.tsx:23
msgid "MFA Setup Required"
-msgstr ""
+msgstr "MFA Kurulumu Gerekli"
#: src/pages/Auth/MFASetup.tsx:34
msgid "Add TOTP"
-msgstr ""
+msgstr "TOTP Ekle"
#: src/pages/Auth/Register.tsx:23
msgid "Go back to login"
@@ -5895,11 +5903,11 @@ msgstr "Giriş yapma ekranına geri dön"
#: src/pages/Auth/ResetPassword.tsx:22
#: src/pages/Auth/VerifyEmail.tsx:19
msgid "Key invalid"
-msgstr ""
+msgstr "Anahtar geçersiz"
#: src/pages/Auth/ResetPassword.tsx:23
msgid "You need to provide a valid key to set a new password. Check your inbox for a reset link."
-msgstr ""
+msgstr "Yeni bir şifre belirlemek için geçerli bir anahtar sağlamanız gerekir. Bir sıfırlama bağlantısı için gelen kutunuzu kontrol edin."
#: src/pages/Auth/ResetPassword.tsx:30
#~ msgid "Token invalid"
@@ -5915,11 +5923,11 @@ msgstr "Yeni şifre belirle"
#: src/pages/Auth/ResetPassword.tsx:35
msgid "The desired new password"
-msgstr ""
+msgstr "İstenen yeni şifre"
#: src/pages/Auth/ResetPassword.tsx:44
msgid "Send Password"
-msgstr ""
+msgstr "Şifre Gönder"
#: src/pages/Auth/Set-Password.tsx:49
#~ msgid "No token provided"
@@ -5931,15 +5939,15 @@ msgstr ""
#: src/pages/Auth/VerifyEmail.tsx:20
msgid "You need to provide a valid key."
-msgstr ""
+msgstr "Geçerli bir anahtar girmeniz gerekmektedir."
#: src/pages/Auth/VerifyEmail.tsx:28
msgid "Verify Email"
-msgstr ""
+msgstr "E-Postayı Doğrula"
#: src/pages/Auth/VerifyEmail.tsx:30
msgid "Verify"
-msgstr ""
+msgstr "Doğrula"
#. placeholder {0}: error.statusText
#: src/pages/ErrorPage.tsx:16
@@ -6104,19 +6112,19 @@ msgstr "Beklenmeyen bir hata oluştu"
#: src/pages/Index/Scan.tsx:63
msgid "Item already scanned"
-msgstr ""
+msgstr "Ürün zaten taranmış"
#: src/pages/Index/Scan.tsx:80
msgid "API Error"
-msgstr ""
+msgstr "API Hatası"
#: src/pages/Index/Scan.tsx:81
msgid "Failed to fetch instance data"
-msgstr ""
+msgstr "Örnek verileri alınamadı"
#: src/pages/Index/Scan.tsx:128
msgid "Scan Error"
-msgstr ""
+msgstr "Tarama Hatası"
#: src/pages/Index/Scan.tsx:160
msgid "Selected elements are not known"
@@ -6128,7 +6136,7 @@ msgstr "Birden çok nesne türü seçildi"
#: src/pages/Index/Scan.tsx:175
msgid "Actions ... "
-msgstr ""
+msgstr "İşlemler ... "
#: src/pages/Index/Scan.tsx:175
#~ msgid "Actions ..."
@@ -6137,11 +6145,11 @@ msgstr ""
#: src/pages/Index/Scan.tsx:192
#: src/pages/Index/Scan.tsx:196
msgid "Barcode Scanning"
-msgstr ""
+msgstr "Barkod Tarama"
#: src/pages/Index/Scan.tsx:205
msgid "Barcode Input"
-msgstr ""
+msgstr "Barkod Girişi"
#: src/pages/Index/Scan.tsx:212
msgid "Action"
@@ -6149,11 +6157,11 @@ msgstr "Eylem"
#: src/pages/Index/Scan.tsx:215
msgid "No Items Selected"
-msgstr ""
+msgstr "Hiç Öge Seçilmedi"
#: src/pages/Index/Scan.tsx:216
msgid "Scan and select items to perform actions"
-msgstr ""
+msgstr "İşlem gerçekleştirmek için ögeleri tarayın ve seçin"
#: src/pages/Index/Scan.tsx:217
#~ msgid "Manual input"
@@ -6170,7 +6178,7 @@ msgstr "{0} öge seçildi"
#: src/pages/Index/Scan.tsx:233
msgid "Scanned Items"
-msgstr ""
+msgstr "Taranan Ögeler"
#: src/pages/Index/Scan.tsx:276
#~ msgid "Actions for {0}"
@@ -6272,7 +6280,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:33
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:113
msgid "Edit Account Information"
-msgstr ""
+msgstr "Hesap Bilgilerini Düzenle"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:34
#~ msgid "User details updated"
@@ -6280,7 +6288,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:37
msgid "Account details updated"
-msgstr ""
+msgstr "Hesap bilgileri güncellendi"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:46
#~ msgid "User Actions"
@@ -6293,7 +6301,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:136
msgid "Edit Profile Information"
-msgstr ""
+msgstr "Profil Bilgilerini Düzenle"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:55
#~ msgid "Last name"
@@ -6309,7 +6317,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:59
msgid "Profile details updated"
-msgstr ""
+msgstr "Profil bilgileri güncellendi"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:61
#~ msgid "Last name: {0}"
@@ -6346,25 +6354,25 @@ msgstr "Adı Görüntüle"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:86
#: src/pages/core/UserDetail.tsx:127
msgid "Position"
-msgstr ""
+msgstr "Pozisyon"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:90
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:967
msgid "Type"
-msgstr ""
+msgstr "Tür"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:91
#: src/pages/core/UserDetail.tsx:143
msgid "Organisation"
-msgstr ""
+msgstr "Kuruluş"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:92
msgid "Primary Group"
-msgstr ""
+msgstr "Birincil Grup"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:104
msgid "Account Details"
-msgstr ""
+msgstr "Hesap Bilgileri"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:107
msgid "Account Actions"
@@ -6377,11 +6385,11 @@ msgstr "Hesabı Düzenle"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:117
#: src/tables/settings/UserTable.tsx:323
msgid "Change Password"
-msgstr ""
+msgstr "Şifreyi Değiştir"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:119
msgid "Change User Password"
-msgstr ""
+msgstr "Kullanıcı Şifresini Değiştir"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:131
msgid "Profile Details"
@@ -6389,7 +6397,7 @@ msgstr "Profil Ayrıntıları"
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:134
msgid "Edit Profile"
-msgstr ""
+msgstr "Profili Düzenle"
#. placeholder {0}: item.label
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:153
@@ -6616,15 +6624,15 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:27
msgid "Secret"
-msgstr ""
+msgstr "Sır"
#: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:40
msgid "One-Time Password"
-msgstr ""
+msgstr "Tek Kullanımlık Şifre"
#: src/pages/Index/Settings/AccountSettings/QrRegistrationForm.tsx:41
msgid "Enter the TOTP code to ensure it registered correctly"
-msgstr ""
+msgstr "Doğru şekilde kaydedildiğinden emin olmak için TOTP kodunu girin"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:55
#~ msgid "Single Sign On Accounts"
@@ -6632,7 +6640,7 @@ msgstr ""
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:60
msgid "Email Addresses"
-msgstr ""
+msgstr "E-posta Adresleri"
#: src/pages/Index/Settings/AccountSettings/SecurityContent.tsx:68
msgid "Single Sign On"
@@ -7287,15 +7295,15 @@ msgstr "Fiyatlandırma"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Stok İzleme"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "Seri numarasına göre ara"
msgid "Part Actions"
msgstr "Parça Eylemleri"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/uk/messages.po b/src/frontend/src/locales/uk/messages.po
index 132bba535f..f94f35a495 100644
--- a/src/frontend/src/locales/uk/messages.po
+++ b/src/frontend/src/locales/uk/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: uk\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Ukrainian\n"
"Plural-Forms: nplurals=4; plural=((n%10==1 && n%100!=11) ? 0 : ((n%10 >= 2 && n%10 <=4 && (n%100 < 12 || n%100 > 14)) ? 1 : ((n%10 == 0 || (n%10 >= 5 && n%10 <=9)) || (n%100 >= 11 && n%100 <= 14)) ? 2 : 3));\n"
@@ -79,12 +79,12 @@ msgstr "Скасувати"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Дії"
@@ -135,19 +135,19 @@ msgstr "Ні"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Частина"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Частини"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Деталі виробника"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Категорія"
@@ -261,7 +261,7 @@ msgstr "Категорії"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "У наявності"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Розташування складу"
@@ -328,7 +328,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Коди проєкту"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Замовлення на купівлю"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Замовлення на купівлю"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Видалити пов'язане зображення з цього елемента?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Код"
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Не вдалося переглядати, натисніть кнопку \"Перезавантаження попереднього перегляду\"."
@@ -1728,11 +1729,11 @@ msgstr "Зберегти поточний шаблон і перезаванта
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "Виберіть екземпляр для перегляду"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Помилка відображення шаблону"
@@ -1829,20 +1830,20 @@ msgstr "Вхід успішно виконано"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Не вдалося увійти"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Перевірте введені дані та повторіть спробу."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Пошту відправлено"
@@ -2075,7 +2076,7 @@ msgstr "Версія API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Плагіни"
@@ -2128,6 +2129,7 @@ msgstr "Без категорії"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Пошук..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Завантаження"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Результатів не знайдено"
@@ -2247,7 +2250,7 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr ""
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Додати"
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Налаштування системи"
@@ -2921,11 +2924,11 @@ msgstr "Вихід"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "В наявності"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "Виробництво"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr ""
msgid "About"
msgstr ""
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Вкладення"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Категорія"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Серійний номер"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Серійний номер"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Кількість"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "Пакетно"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Постачальник"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Завантаження..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "Деталі додано"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "Усі вибрані частини додані до Замовлення на купівлю"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "Ви повинні вибрати принаймні один елемент для замовлення"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr ""
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "Введіть Номер серії збірки для отриманих елементів"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr ""
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr ""
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr ""
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr ""
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Стан залишків"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Додати елемент складу"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Перемістити в типове розташування"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Перемістити"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Перемістити"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Кількість"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Додати запаси"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "Додано елемент складу"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Видалити елемент складу"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "Видалено елемент складу"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Переміщення запасів"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Кількість запасів"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr ""
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr ""
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr "Внутрішня помилка сервера"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr ""
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr ""
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Перевірте вашу поштову скриньку для скидання посилання. Це працює тільки в тому випадку, якщо у вас є обліковий запис. Перевірити також спам."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr ""
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "Вхід вже здійснено"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr ""
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr ""
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr ""
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Пароль успішно встановлено. Тепер ви можете увійти в систему, використовуючи новий пароль"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr ""
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr ""
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/vi/messages.po b/src/frontend/src/locales/vi/messages.po
index cef3ed3f64..36732973bf 100644
--- a/src/frontend/src/locales/vi/messages.po
+++ b/src/frontend/src/locales/vi/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: vi\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -79,12 +79,12 @@ msgstr "Hủy bỏ"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "Chức năng"
@@ -135,19 +135,19 @@ msgstr "Không"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "Phụ kiện"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "Phụ tùng"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "Nhà sản xuất phụ kiện"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "Danh mục phụ kiện"
@@ -261,7 +261,7 @@ msgstr "Danh mục phụ kiện"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "Hàng trong kho"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "Vị trí kho hàng"
@@ -328,7 +328,7 @@ msgstr "Xây dựng đơn hàng"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "Mã dự án"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "Đơn đặt mua"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "Đơn đặt bán"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "Đơn hàng trả lại"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr ""
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr ""
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr ""
@@ -1391,11 +1392,11 @@ msgstr ""
msgid "This widget requires superuser permissions"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr ""
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr ""
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "Xóa hình liên quan khỏi mục này?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "Mã"
msgid "Error rendering preview"
msgstr ""
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "Xem trước không khả dụng, nhấp \"Tải lại xem trước\"."
@@ -1728,11 +1729,11 @@ msgstr "Lưu mẫu hiện tại và tải lại xem trước"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr ""
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "Lỗi hiển thị mẫu"
@@ -1829,20 +1830,20 @@ msgstr "Đăng nhập thành công"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "Đăng nhập thất bại"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "Kiểm tra đầu vào của bạn và thử lại."
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "Thư đã được gửi đi thành công"
@@ -2075,7 +2076,7 @@ msgstr "Phiên bản API"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "Plugins"
@@ -2128,6 +2129,7 @@ msgstr "Chưa có danh mục"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "Tìm kiếm..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "Đang tải"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "Không có kết quả nào được tìm thấy"
@@ -2247,7 +2250,7 @@ msgstr "Đang xử lý dữ liệu"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "Có lỗi xảy ra"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr ""
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "Thêm"
@@ -2871,8 +2874,8 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "Thiết lập hệ thống"
@@ -2921,11 +2924,11 @@ msgstr "Đăng xuất"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "Kho hàng"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr ""
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "Mua sắm"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "Điều hướng"
msgid "About"
msgstr "Giới thiệu"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr ""
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "Đính kèm"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "Danh mục"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "Số sê-ri"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "Số sê-ri"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "Số lượng"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr ""
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "Nhà cung cấp"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "Đang tải..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr ""
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr ""
msgid "Select supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr ""
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr ""
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "Điều chỉnh bao bì"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "Thay đổi trạng thái"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "Số sê-ri"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr ""
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr ""
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "Thêm số lượng đã có theo gói thay vì các mục đơn lẻ"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "Nhập số lượng khởi đầu cho kho hàng này"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "Điền số sê-ri cho kho mới (hoặc để trống)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "Trạng thái kho"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "Thêm mặt hàng trong kho"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr ""
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr ""
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "Đến vị trí mặc định"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "Di chuyển"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr ""
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "Di chuyển"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr ""
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "Đếm"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "Thêm kho"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr ""
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "Xoá kho"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr ""
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr ""
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "Chuyển kho"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr ""
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr ""
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr ""
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr ""
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "Kiểm kê"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr ""
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr ""
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "Đổi trạng thái kho"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr ""
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr ""
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr ""
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "Gộp kho"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr ""
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr ""
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr ""
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr ""
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr ""
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr ""
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "Xóa mặt hàng trong kho"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr ""
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr ""
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "Vị trí kho lớn"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr ""
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr ""
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr ""
@@ -5539,7 +5547,7 @@ msgstr ""
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "Đã đăng xuất"
@@ -5551,97 +5559,97 @@ msgstr ""
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr ""
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr ""
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr ""
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr ""
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "Đăng xuất thành công"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr ""
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr ""
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr ""
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "Kiểm tra hộp thư để lấy liên kết đặt lại. Việc này chỉ có tác dụng khi bạn có tài khoản. Cần kiểm tra thư mục Spam/Junk."
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "Thiết lập lại thất bại"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr ""
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr ""
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "Đã đăng nhập"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "Đăng nhập thành công."
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr ""
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr ""
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr ""
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "Đã đặt mật khẩu"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "Mật khẩu đã được đặt mới thành công. Bạn có thể đăng nhập bằng mật khẩu mới"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr ""
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr ""
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr ""
@@ -7287,15 +7295,15 @@ msgstr "Giá bán"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "Theo dõi tồn kho"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr ""
msgid "Part Actions"
msgstr "Thao tác"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/zh_Hans/messages.po b/src/frontend/src/locales/zh_Hans/messages.po
index 2b73bb7455..635cfbd5f5 100644
--- a/src/frontend/src/locales/zh_Hans/messages.po
+++ b/src/frontend/src/locales/zh_Hans/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -79,12 +79,12 @@ msgstr "取消"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "操作"
@@ -135,19 +135,19 @@ msgstr "否"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "零件"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "零件"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "制造商零件"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "零件类别"
@@ -261,7 +261,7 @@ msgstr "零件类别"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "库存项"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "库存地点"
@@ -328,7 +328,7 @@ msgstr "生产订单"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "项目编码"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "采购订单"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "销售订单"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "退货订单"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr "入选"
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "请求已超时"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "处理失败"
@@ -1391,11 +1392,11 @@ msgstr "需要超级用户"
msgid "This widget requires superuser permissions"
msgstr "此部件需要超级用户权限"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "沒有消息"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "没有未读新闻项目"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "删除与此项关联的图片?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "代码"
msgid "Error rendering preview"
msgstr "预览渲染错误"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "预览不可用,点击\"重新加载预览\"。"
@@ -1728,11 +1729,11 @@ msgstr "保存当前模板并重新加载预览"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "选择预览实例"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "渲染模板时出错"
@@ -1829,20 +1830,20 @@ msgstr "登录成功"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "登录失败"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "请检查您的输入并重试。"
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "邮件发送成功"
@@ -2075,7 +2076,7 @@ msgstr "API 版本"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "插件"
@@ -2128,6 +2129,7 @@ msgstr "未分类"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "搜索..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "正在加载"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "未找到结果"
@@ -2247,7 +2250,7 @@ msgstr "处理数据中"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "发生错误"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "更改"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "添加"
@@ -2871,8 +2874,8 @@ msgstr "用户设置"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "系统设置"
@@ -2921,11 +2924,11 @@ msgstr "登出"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "库存"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "生产"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "采购"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "导航栏"
msgid "About"
msgstr "关于"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "导航树加载错误。"
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "附件"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "类别"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "序列号"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "序列号"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "数量"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "批次"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "供应商"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "正在加载..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "销售需求"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "零件已添加到采购订单中"
msgid "Select supplier part"
msgstr "选择供应商零件"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "复制供应商零件编号"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "新增供应商零件"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "选择采购订单"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "新建采购订单"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "添加到已选的采购订单中"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "没有选定零件"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "未选择可购买的零件"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "零件已添加"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "所有选中的零件添加到采购订单中"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "您必须至少选择一个零件才能下单"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "供应商零件为必填项"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "数量为必填项"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "无效的零件选择"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "请修正所选零件中的错误"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "待完成数量"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "设置到期日期"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "调整封包"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "更改状态"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "输入接收项目的批号"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "序列号"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "输入接收项目的到期日期"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "留空则使用订单地址"
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "将给定的数量添加为包,而不是单个项目"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "输入此库存项的初始数量"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "输入新库存的序列号(或留空)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "库存状态"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "编辑库存项"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "选择要安装的零件"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "确认库存转移"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "移动到默认位置"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "移动"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "退货"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "移动"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "退货"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "总计"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "添加库存"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "库存已添加"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "按指定数量增加选定库存物料的存量。"
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "移除库存"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "库存已移除"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "按指定数量减少选定库存物料的存量。"
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "转移库存"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "库存已转移"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "将选定物料转移至指定位置。"
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "退回库存"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "库存已退回"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "将选定物料退回库存至指定位置。"
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "库存数量"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "库存计数"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "统计选定库存物料数量并按需调整。"
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "更改库存状态"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "库存状态已改变"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "变更选定库存物料的状态。"
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr "修改批号"
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr "变更选定库存物料的批号"
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "合并库存"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "库存已合并"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "合并库存物料"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "合并操作不可逆"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "合并操作可能导致追溯信息丢失"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "合并操作可能导致供应商信息丢失"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "将库存分配给客户"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "库存已分配给客户"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "删除库存项"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "库存已删除"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "此操作将永久删除选定的库存物料。"
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "上级库存地点"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "查找序列号"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "未找到匹配项"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "存在多个匹配项"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "服务器返回无效响应"
@@ -5539,7 +5547,7 @@ msgstr "服务内部错误"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "已登出"
@@ -5551,97 +5559,97 @@ msgstr "此浏览器存在冲突会话,已被登出。"
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "服务器无响应。"
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "服务器无响应。"
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "MFA登录验证成功"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "浏览器自动提供了MFA验证信息"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "已成功登出"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "语言已更改"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "您的活动语言已被更改为您个人资料中设置的语言"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "主题已更改"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "您的活动主题已被更改为您个人资料中设置的主题"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "查看收件箱中的重置链接。这只有在您有账户的情况下才会起作用。也请检查垃圾邮件。"
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "重置失败"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "您已经登陆了"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "此浏览器的服务器上存在冲突会话。请先登出该会话。"
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "已登录"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "已成功登入"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "设置 MFA 失败"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr "MFA 设置成功"
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "基于 TOTP 的多因素认证(MFA)设置成功;您需要重新登录。"
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "密码已设置"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "密码设置成功。您现在可以使用新密码登录"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "无法更改密码"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "两个密码不匹配"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "密码已更改"
@@ -7287,15 +7295,15 @@ msgstr "定价"
msgid "Part Creation"
msgstr "零件创建"
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr "库存到期"
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr "零件盘点"
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "库存跟踪"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr "外部生产订单"
@@ -8347,11 +8355,11 @@ msgstr "按序列号搜索"
msgid "Part Actions"
msgstr "零件选项"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/locales/zh_Hant/messages.po b/src/frontend/src/locales/zh_Hant/messages.po
index 7995d711e3..1e69c1fbd5 100644
--- a/src/frontend/src/locales/zh_Hant/messages.po
+++ b/src/frontend/src/locales/zh_Hant/messages.po
@@ -8,7 +8,7 @@ msgstr ""
"Language: zh\n"
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"PO-Revision-Date: 2026-06-17 22:14\n"
+"PO-Revision-Date: 2026-06-24 14:28\n"
"Last-Translator: \n"
"Language-Team: Chinese Traditional\n"
"Plural-Forms: nplurals=1; plural=0;\n"
@@ -79,12 +79,12 @@ msgstr "取消"
#: lib/components/RowActions.tsx:136
#: src/components/nav/NavigationDrawer.tsx:190
#: src/forms/PurchaseOrderForms.tsx:919
-#: src/forms/StockForms.tsx:843
-#: src/forms/StockForms.tsx:891
-#: src/forms/StockForms.tsx:957
-#: src/forms/StockForms.tsx:1003
-#: src/forms/StockForms.tsx:1044
-#: src/forms/StockForms.tsx:1160
+#: src/forms/StockForms.tsx:870
+#: src/forms/StockForms.tsx:918
+#: src/forms/StockForms.tsx:984
+#: src/forms/StockForms.tsx:1030
+#: src/forms/StockForms.tsx:1071
+#: src/forms/StockForms.tsx:1187
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:976
msgid "Actions"
msgstr "操作"
@@ -135,19 +135,19 @@ msgstr "否"
#: src/forms/PurchaseOrderForms.tsx:915
#: src/forms/ReturnOrderForms.tsx:246
#: src/forms/SalesOrderForms.tsx:436
-#: src/forms/StockForms.tsx:370
-#: src/forms/StockForms.tsx:838
-#: src/forms/StockForms.tsx:886
-#: src/forms/StockForms.tsx:952
-#: src/forms/StockForms.tsx:998
-#: src/forms/StockForms.tsx:1039
-#: src/forms/StockForms.tsx:1088
-#: src/forms/StockForms.tsx:1156
-#: src/forms/StockForms.tsx:1204
-#: src/forms/StockForms.tsx:1248
+#: src/forms/StockForms.tsx:378
+#: src/forms/StockForms.tsx:865
+#: src/forms/StockForms.tsx:913
+#: src/forms/StockForms.tsx:979
+#: src/forms/StockForms.tsx:1025
+#: src/forms/StockForms.tsx:1066
+#: src/forms/StockForms.tsx:1115
+#: src/forms/StockForms.tsx:1183
+#: src/forms/StockForms.tsx:1231
+#: src/forms/StockForms.tsx:1275
#: src/forms/TransferOrderForms.tsx:234
#: src/pages/build/BuildDetail.tsx:260
-#: src/pages/part/PartDetail.tsx:1165
+#: src/pages/part/PartDetail.tsx:1166
#: src/pages/part/bom/BomCompare.tsx:203
#: src/tables/ColumnRenderers.tsx:93
#: src/tables/build/BuildOrderParametricTable.tsx:29
@@ -166,7 +166,7 @@ msgstr "零件"
#: src/pages/part/CategoryDetail.tsx:138
#: src/pages/part/CategoryDetail.tsx:285
#: src/pages/part/CategoryDetail.tsx:345
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/pages/part/PartDetail.tsx:893
msgid "Parts"
msgstr "零件"
@@ -242,7 +242,7 @@ msgid "Manufacturer Parts"
msgstr "製造商零件"
#: lib/enums/ModelInformation.tsx:80
-#: src/pages/part/CategoryDetail.tsx:387
+#: src/pages/part/CategoryDetail.tsx:388
#: src/tables/Filter.tsx:496
msgid "Part Category"
msgstr "零件類別"
@@ -261,7 +261,7 @@ msgstr "零件類別"
#: src/forms/BuildForms.tsx:848
#: src/forms/SalesOrderForms.tsx:438
#: src/forms/TransferOrderForms.tsx:236
-#: src/pages/stock/StockDetail.tsx:1075
+#: src/pages/stock/StockDetail.tsx:1076
#: src/tables/ColumnRenderers.tsx:132
#: src/tables/part/PartTestResultTable.tsx:256
#: src/tables/stock/InstalledItemsTable.tsx:66
@@ -283,7 +283,7 @@ msgstr "庫存項"
#: lib/enums/ModelInformation.tsx:99
#: lib/enums/Roles.tsx:51
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
msgid "Stock Location"
msgstr "庫存地點"
@@ -328,7 +328,7 @@ msgstr "生產訂單"
#: lib/enums/ModelInformation.tsx:122
#: lib/enums/Roles.tsx:35
#: src/defaults/actions.tsx:184
-#: src/pages/Index/Settings/SystemSettings.tsx:315
+#: src/pages/Index/Settings/SystemSettings.tsx:316
#: src/pages/build/BuildIndex.tsx:87
#: src/pages/part/PartDetail.tsx:780
#: src/pages/sales/SalesOrderDetail.tsx:437
@@ -386,7 +386,7 @@ msgid "Project Codes"
msgstr "項目編碼"
#: lib/enums/ModelInformation.tsx:160
-#: src/components/wizards/OrderPartsWizard.tsx:341
+#: src/components/wizards/OrderPartsWizard.tsx:346
#: src/pages/part/pricing/PurchaseHistoryPanel.tsx:33
#: src/pages/purchasing/PurchaseOrderDetail.tsx:577
#: src/pages/stock/StockDetail.tsx:363
@@ -399,7 +399,7 @@ msgstr "採購訂單"
#: lib/enums/ModelInformation.tsx:161
#: lib/enums/Roles.tsx:41
#: src/defaults/actions.tsx:133
-#: src/pages/Index/Settings/SystemSettings.tsx:342
+#: src/pages/Index/Settings/SystemSettings.tsx:343
#: src/pages/company/CompanyDetail.tsx:210
#: src/pages/company/SupplierPartDetail.tsx:274
#: src/pages/part/PartDetail.tsx:751
@@ -432,7 +432,7 @@ msgstr "銷售訂單"
#: lib/enums/ModelInformation.tsx:177
#: lib/enums/Roles.tsx:47
#: src/defaults/actions.tsx:143
-#: src/pages/Index/Settings/SystemSettings.tsx:360
+#: src/pages/Index/Settings/SystemSettings.tsx:361
#: src/pages/company/CompanyDetail.tsx:230
#: src/pages/part/PartDetail.tsx:763
#: src/pages/sales/SalesIndex.tsx:107
@@ -457,7 +457,7 @@ msgstr "退貨訂單"
#: lib/enums/ModelInformation.tsx:197
#: lib/enums/Roles.tsx:43
#: src/defaults/actions.tsx:165
-#: src/pages/Index/Settings/SystemSettings.tsx:372
+#: src/pages/Index/Settings/SystemSettings.tsx:373
#: src/pages/company/CompanyDetail.tsx:237
#: src/pages/part/PartDetail.tsx:770
#: src/pages/sales/SalesIndex.tsx:147
@@ -482,7 +482,7 @@ msgstr ""
#: lib/enums/ModelInformation.tsx:213
#: lib/enums/Roles.tsx:45
#: src/defaults/actions.tsx:154
-#: src/pages/Index/Settings/SystemSettings.tsx:385
+#: src/pages/Index/Settings/SystemSettings.tsx:386
#: src/pages/part/PartDetail.tsx:787
#: src/pages/stock/LocationDetail.tsx:249
msgid "Transfer Orders"
@@ -644,14 +644,14 @@ msgstr "選取項目 (多筆)"
#: src/components/importer/ImporterColumnSelector.tsx:330
#: src/components/importer/ImporterDrawer.tsx:91
#: src/components/modals/LicenseModal.tsx:85
-#: src/components/nav/NavigationTree.tsx:211
+#: src/components/nav/NavigationTree.tsx:398
#: src/components/nav/NotificationDrawer.tsx:235
#: src/components/nav/SearchDrawer.tsx:588
#: src/components/settings/SettingList.tsx:145
#: src/components/wizards/ImportPartWizard.tsx:574
#: src/components/wizards/ImportPartWizard.tsx:719
#: src/forms/BomForms.tsx:83
-#: src/functions/auth.tsx:691
+#: src/functions/auth.tsx:693
#: src/pages/ErrorPage.tsx:11
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:317
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:408
@@ -723,6 +723,7 @@ msgstr "請求已超時"
#: lib/hooks/MonitorDataOutput.tsx:57
#: lib/hooks/MonitorDataOutput.tsx:116
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:76
msgid "Process failed"
msgstr "處理失敗"
@@ -1391,11 +1392,11 @@ msgstr "需要超級使用者"
msgid "This widget requires superuser permissions"
msgstr "此小工具需要超級使用者權限"
-#: src/components/dashboard/widgets/NewsWidget.tsx:133
+#: src/components/dashboard/widgets/NewsWidget.tsx:135
msgid "No News"
msgstr "沒有新聞"
-#: src/components/dashboard/widgets/NewsWidget.tsx:134
+#: src/components/dashboard/widgets/NewsWidget.tsx:136
msgid "There are no unread news items"
msgstr "沒有未讀的新聞項目"
@@ -1476,7 +1477,7 @@ msgid "Remove the associated image from this item?"
msgstr "刪除與此項關聯的圖片?"
#: src/components/details/DetailsImage.tsx:82
-#: src/forms/StockForms.tsx:956
+#: src/forms/StockForms.tsx:983
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:326
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:417
#: src/pages/Index/Settings/AccountSettings/MFASettings.tsx:898
@@ -1655,7 +1656,7 @@ msgstr "代碼"
msgid "Error rendering preview"
msgstr "預覽彩現時發生錯誤"
-#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:120
+#: src/components/editors/TemplateEditor/PdfPreview/PdfPreview.tsx:124
msgid "Preview not available, click \"Reload Preview\"."
msgstr "預覽不可用,點擊\"重新加載預覽\"。"
@@ -1728,11 +1729,11 @@ msgstr "保存當前模板並重新加載預覽"
#~ msgid "to preview"
#~ msgstr "to preview"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:379
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:380
msgid "Select instance to preview"
msgstr "選擇預覽實例"
-#: src/components/editors/TemplateEditor/TemplateEditor.tsx:423
+#: src/components/editors/TemplateEditor/TemplateEditor.tsx:424
msgid "Error rendering template"
msgstr "渲染模板時出錯"
@@ -1829,20 +1830,20 @@ msgstr "登錄成功"
#: src/components/forms/AuthenticationForm.tsx:81
#: src/components/forms/AuthenticationForm.tsx:89
#: src/functions/auth.tsx:133
-#: src/functions/auth.tsx:142
+#: src/functions/auth.tsx:144
msgid "Login failed"
msgstr "登錄失敗"
#: src/components/forms/AuthenticationForm.tsx:82
#: src/components/forms/AuthenticationForm.tsx:90
#: src/components/forms/AuthenticationForm.tsx:106
-#: src/functions/auth.tsx:134
-#: src/functions/auth.tsx:354
+#: src/functions/auth.tsx:136
+#: src/functions/auth.tsx:356
msgid "Check your input and try again."
msgstr "請檢查您的輸入並重試。"
#: src/components/forms/AuthenticationForm.tsx:100
-#: src/functions/auth.tsx:345
+#: src/functions/auth.tsx:347
msgid "Mail delivery successful"
msgstr "郵件發送成功"
@@ -2075,7 +2076,7 @@ msgstr "API 版本"
#: src/defaults/actions.tsx:232
#: src/pages/Index/Settings/AdminCenter/Index.tsx:233
#: src/pages/Index/Settings/AdminCenter/PluginManagementPanel.tsx:58
-#: src/pages/Index/Settings/SystemSettings.tsx:399
+#: src/pages/Index/Settings/SystemSettings.tsx:400
msgid "Plugins"
msgstr "插件"
@@ -2128,6 +2129,7 @@ msgstr "未分類"
#: src/components/forms/fields/IconField.tsx:211
#: src/components/nav/Layout.tsx:143
+#: src/components/nav/NavigationTree.tsx:378
#: src/tables/part/PartThumbTable.tsx:209
msgid "Search..."
msgstr "搜索..."
@@ -2153,6 +2155,7 @@ msgid "Loading"
msgstr "正在加載"
#: src/components/forms/fields/RelatedModelField.tsx:540
+#: src/components/nav/NavigationTree.tsx:403
msgid "No results found"
msgstr "找不到結果"
@@ -2247,7 +2250,7 @@ msgstr "處理數據中"
#: src/components/importer/ImporterColumnSelector.tsx:299
#: src/components/items/ErrorItem.tsx:12
#: src/functions/api.tsx:60
-#: src/functions/auth.tsx:401
+#: src/functions/auth.tsx:403
msgid "An error occurred"
msgstr "發生錯誤"
@@ -2516,7 +2519,7 @@ msgid "Change"
msgstr "變更"
#: src/components/items/RoleTable.tsx:150
-#: src/forms/StockForms.tsx:1002
+#: src/forms/StockForms.tsx:1029
#: src/tables/stock/StockItemTestResultTable.tsx:369
msgid "Add"
msgstr "添加"
@@ -2871,8 +2874,8 @@ msgstr "使用者設定"
#: src/components/nav/NavigationDrawer.tsx:146
#: src/components/nav/SettingsHeader.tsx:41
#: src/defaults/actions.tsx:193
-#: src/pages/Index/Settings/SystemSettings.tsx:418
-#: src/pages/Index/Settings/SystemSettings.tsx:423
+#: src/pages/Index/Settings/SystemSettings.tsx:419
+#: src/pages/Index/Settings/SystemSettings.tsx:424
msgid "System Settings"
msgstr "系統設置"
@@ -2921,11 +2924,11 @@ msgstr "登出"
#: src/components/render/Part.tsx:36
#: src/components/wizards/ImportPartWizard.tsx:808
#: src/defaults/links.tsx:47
-#: src/forms/StockForms.tsx:841
+#: src/forms/StockForms.tsx:868
#: src/pages/Index/Settings/SystemSettings.tsx:260
#: src/pages/part/PartDetail.tsx:663
#: src/pages/stock/LocationDetail.tsx:481
-#: src/pages/stock/LocationDetail.tsx:522
+#: src/pages/stock/LocationDetail.tsx:523
#: src/pages/stock/StockDetail.tsx:689
#: src/pages/stock/TransferOrderDetail.tsx:536
#: src/tables/stock/StockItemTable.tsx:81
@@ -2934,7 +2937,7 @@ msgstr "庫存"
#: src/components/nav/NavigationDrawer.tsx:84
#: src/defaults/links.tsx:57
-#: src/pages/Index/Settings/SystemSettings.tsx:310
+#: src/pages/Index/Settings/SystemSettings.tsx:311
#: src/pages/build/BuildDetail.tsx:816
#: src/pages/build/BuildIndex.tsx:121
msgid "Manufacturing"
@@ -2942,7 +2945,7 @@ msgstr "製造"
#: src/components/nav/NavigationDrawer.tsx:91
#: src/defaults/links.tsx:63
-#: src/pages/Index/Settings/SystemSettings.tsx:338
+#: src/pages/Index/Settings/SystemSettings.tsx:339
#: src/pages/company/ManufacturerDetail.tsx:9
#: src/pages/company/ManufacturerPartDetail.tsx:274
#: src/pages/company/SupplierDetail.tsx:9
@@ -2954,7 +2957,7 @@ msgstr "採購中"
#: src/components/nav/NavigationDrawer.tsx:98
#: src/defaults/links.tsx:69
-#: src/pages/Index/Settings/SystemSettings.tsx:355
+#: src/pages/Index/Settings/SystemSettings.tsx:356
#: src/pages/company/CustomerDetail.tsx:9
#: src/pages/sales/ReturnOrderDetail.tsx:575
#: src/pages/sales/SalesIndex.tsx:211
@@ -2971,7 +2974,11 @@ msgstr "導航欄"
msgid "About"
msgstr "關於"
-#: src/components/nav/NavigationTree.tsx:212
+#: src/components/nav/NavigationTree.tsx:388
+msgid "Clear search"
+msgstr ""
+
+#: src/components/nav/NavigationTree.tsx:399
msgid "Error loading navigation tree."
msgstr "載入導覽樹狀結構時發生錯誤。"
@@ -3086,7 +3093,7 @@ msgid "Attachments"
msgstr "附件"
#: src/components/panels/NotesPanel.tsx:27
-#: src/forms/StockForms.tsx:911
+#: src/forms/StockForms.tsx:938
#: src/tables/part/PartTestResultTable.tsx:214
#: src/tables/stock/StockTrackingTable.tsx:279
msgid "Notes"
@@ -3382,15 +3389,15 @@ msgstr "類別"
#: src/components/render/Stock.tsx:132
#: src/forms/BuildForms.tsx:849
#: src/forms/PurchaseOrderForms.tsx:709
-#: src/forms/StockForms.tsx:839
-#: src/forms/StockForms.tsx:887
-#: src/forms/StockForms.tsx:953
-#: src/forms/StockForms.tsx:999
-#: src/forms/StockForms.tsx:1040
-#: src/forms/StockForms.tsx:1089
-#: src/forms/StockForms.tsx:1157
-#: src/forms/StockForms.tsx:1205
-#: src/forms/StockForms.tsx:1249
+#: src/forms/StockForms.tsx:866
+#: src/forms/StockForms.tsx:914
+#: src/forms/StockForms.tsx:980
+#: src/forms/StockForms.tsx:1026
+#: src/forms/StockForms.tsx:1067
+#: src/forms/StockForms.tsx:1116
+#: src/forms/StockForms.tsx:1184
+#: src/forms/StockForms.tsx:1232
+#: src/forms/StockForms.tsx:1276
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:88
#: src/pages/core/UserDetail.tsx:158
#: src/pages/stock/StockDetail.tsx:309
@@ -3411,7 +3418,7 @@ msgid "Serial Number"
msgstr "序列號"
#: src/components/render/Stock.tsx:104
-#: src/components/wizards/OrderPartsWizard.tsx:380
+#: src/components/wizards/OrderPartsWizard.tsx:385
#: src/forms/BomForms.tsx:42
#: src/forms/BuildForms.tsx:266
#: src/forms/BuildForms.tsx:687
@@ -3419,7 +3426,7 @@ msgstr "序列號"
#: src/forms/PurchaseOrderForms.tsx:918
#: src/forms/ReturnOrderForms.tsx:247
#: src/forms/SalesOrderForms.tsx:439
-#: src/forms/StockForms.tsx:889
+#: src/forms/StockForms.tsx:916
#: src/forms/TransferOrderForms.tsx:237
#: src/pages/build/BuildIndex.tsx:47
#: src/pages/part/PartStockHistoryDetail.tsx:61
@@ -3446,15 +3453,15 @@ msgstr "數量"
#: src/forms/BuildForms.tsx:371
#: src/forms/BuildForms.tsx:453
#: src/forms/BuildForms.tsx:527
-#: src/forms/StockForms.tsx:840
-#: src/forms/StockForms.tsx:888
-#: src/forms/StockForms.tsx:954
-#: src/forms/StockForms.tsx:1000
-#: src/forms/StockForms.tsx:1041
-#: src/forms/StockForms.tsx:1090
-#: src/forms/StockForms.tsx:1158
-#: src/forms/StockForms.tsx:1206
-#: src/forms/StockForms.tsx:1250
+#: src/forms/StockForms.tsx:867
+#: src/forms/StockForms.tsx:915
+#: src/forms/StockForms.tsx:981
+#: src/forms/StockForms.tsx:1027
+#: src/forms/StockForms.tsx:1068
+#: src/forms/StockForms.tsx:1117
+#: src/forms/StockForms.tsx:1185
+#: src/forms/StockForms.tsx:1233
+#: src/forms/StockForms.tsx:1277
#: src/tables/build/BuildLineTable.tsx:95
msgid "Batch"
msgstr "批次"
@@ -3976,7 +3983,7 @@ msgid "Supplier"
msgstr "供應商"
#: src/components/wizards/ImportPartWizard.tsx:221
-#: src/forms/StockForms.tsx:645
+#: src/forms/StockForms.tsx:655
msgid "Loading..."
msgstr "正在加載..."
@@ -4122,13 +4129,13 @@ msgid "Sales Requirements"
msgstr "銷售需求"
#: src/components/wizards/OrderPartsWizard.tsx:129
-#: src/forms/StockForms.tsx:955
-#: src/forms/StockForms.tsx:1001
-#: src/forms/StockForms.tsx:1042
-#: src/forms/StockForms.tsx:1091
-#: src/forms/StockForms.tsx:1159
-#: src/forms/StockForms.tsx:1207
-#: src/forms/StockForms.tsx:1251
+#: src/forms/StockForms.tsx:982
+#: src/forms/StockForms.tsx:1028
+#: src/forms/StockForms.tsx:1069
+#: src/forms/StockForms.tsx:1118
+#: src/forms/StockForms.tsx:1186
+#: src/forms/StockForms.tsx:1234
+#: src/forms/StockForms.tsx:1278
#: src/pages/company/SupplierPartDetail.tsx:195
#: src/pages/company/SupplierPartDetail.tsx:392
#: src/pages/part/PartDetail.tsx:395
@@ -4173,64 +4180,64 @@ msgstr "零件已新增至採購訂單"
msgid "Select supplier part"
msgstr "選擇供應商零件"
-#: src/components/wizards/OrderPartsWizard.tsx:326
+#: src/components/wizards/OrderPartsWizard.tsx:331
msgid "Copy supplier part number"
msgstr "複製供應商零件號碼"
-#: src/components/wizards/OrderPartsWizard.tsx:329
+#: src/components/wizards/OrderPartsWizard.tsx:334
msgid "New supplier part"
msgstr "新增供應商零件"
-#: src/components/wizards/OrderPartsWizard.tsx:353
+#: src/components/wizards/OrderPartsWizard.tsx:358
msgid "Select purchase order"
msgstr "選擇採購訂單"
-#: src/components/wizards/OrderPartsWizard.tsx:367
+#: src/components/wizards/OrderPartsWizard.tsx:372
msgid "New purchase order"
msgstr "新增採購訂單"
-#: src/components/wizards/OrderPartsWizard.tsx:423
+#: src/components/wizards/OrderPartsWizard.tsx:428
msgid "Add to selected purchase order"
msgstr "新增至選定的採購訂單"
-#: src/components/wizards/OrderPartsWizard.tsx:440
-#: src/components/wizards/OrderPartsWizard.tsx:578
+#: src/components/wizards/OrderPartsWizard.tsx:445
+#: src/components/wizards/OrderPartsWizard.tsx:583
msgid "No parts selected"
msgstr "未選擇任何零件"
-#: src/components/wizards/OrderPartsWizard.tsx:441
+#: src/components/wizards/OrderPartsWizard.tsx:446
msgid "No purchaseable parts selected"
msgstr "未選擇可採購的零件"
-#: src/components/wizards/OrderPartsWizard.tsx:477
+#: src/components/wizards/OrderPartsWizard.tsx:482
msgid "Parts Added"
msgstr "已新增零件"
-#: src/components/wizards/OrderPartsWizard.tsx:478
+#: src/components/wizards/OrderPartsWizard.tsx:483
msgid "All selected parts added to a purchase order"
msgstr "所有選定的零件已新增至採購訂單"
-#: src/components/wizards/OrderPartsWizard.tsx:579
+#: src/components/wizards/OrderPartsWizard.tsx:584
msgid "You must select at least one part to order"
msgstr "您必須至少選擇一個零件進行訂購"
-#: src/components/wizards/OrderPartsWizard.tsx:590
+#: src/components/wizards/OrderPartsWizard.tsx:595
msgid "Supplier part is required"
msgstr "供應商零件為必填項目"
-#: src/components/wizards/OrderPartsWizard.tsx:594
+#: src/components/wizards/OrderPartsWizard.tsx:599
msgid "Quantity is required"
msgstr "數量為必填項目"
-#: src/components/wizards/OrderPartsWizard.tsx:607
+#: src/components/wizards/OrderPartsWizard.tsx:612
msgid "Invalid part selection"
msgstr "無效的零件選擇"
-#: src/components/wizards/OrderPartsWizard.tsx:609
+#: src/components/wizards/OrderPartsWizard.tsx:614
msgid "Please correct the errors in the selected parts"
msgstr "請修正選定零件中的錯誤"
-#: src/components/wizards/OrderPartsWizard.tsx:620
+#: src/components/wizards/OrderPartsWizard.tsx:625
#: src/tables/build/BuildLineTable.tsx:885
#: src/tables/part/PartTable.tsx:417
#: src/tables/sales/SalesOrderLineItemTable.tsx:417
@@ -4814,7 +4821,7 @@ msgstr "要完成的數量"
#: src/forms/PurchaseOrderForms.tsx:834
#: src/forms/ReturnOrderForms.tsx:201
#: src/forms/ReturnOrderForms.tsx:248
-#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:780
#: src/pages/Index/Settings/AccountSettings/AccountDetailPanel.tsx:87
#: src/pages/build/BuildDetail.tsx:282
#: src/pages/core/UserDetail.tsx:151
@@ -5097,12 +5104,12 @@ msgid "Set Expiry Date"
msgstr "設定到期日"
#: src/forms/PurchaseOrderForms.tsx:641
-#: src/forms/StockForms.tsx:740
+#: src/forms/StockForms.tsx:750
msgid "Adjust Packaging"
msgstr "調整封包"
#: src/forms/PurchaseOrderForms.tsx:650
-#: src/forms/StockForms.tsx:731
+#: src/forms/StockForms.tsx:741
#: src/hooks/UseStockAdjustActions.tsx:152
msgid "Change Status"
msgstr "更改狀態"
@@ -5146,7 +5153,7 @@ msgid "Enter batch code for received items"
msgstr "輸入收貨項目的批次代碼"
#: src/forms/PurchaseOrderForms.tsx:789
-#: src/forms/StockForms.tsx:224
+#: src/forms/StockForms.tsx:232
msgid "Serial Numbers"
msgstr "序列號"
@@ -5165,7 +5172,7 @@ msgid "Enter an expiry date for received items"
msgstr "輸入收貨項目的到期日"
#: src/forms/PurchaseOrderForms.tsx:820
-#: src/forms/StockForms.tsx:775
+#: src/forms/StockForms.tsx:796
#: src/pages/company/SupplierPartDetail.tsx:177
#: src/pages/company/SupplierPartDetail.tsx:244
#: src/pages/stock/StockDetail.tsx:430
@@ -5267,218 +5274,219 @@ msgstr "留空以使用訂單地址"
#~ msgid "Stock item updated"
#~ msgstr "Stock item updated"
-#: src/forms/StockForms.tsx:202
+#: src/forms/StockForms.tsx:210
msgid "Add given quantity as packs instead of individual items"
msgstr "將給定的數量添加為包,而不是單個項目"
-#: src/forms/StockForms.tsx:216
+#: src/forms/StockForms.tsx:224
msgid "Enter initial quantity for this stock item"
msgstr "輸入此庫存項的初始數量"
-#: src/forms/StockForms.tsx:226
+#: src/forms/StockForms.tsx:234
msgid "Enter serial numbers for new stock (or leave blank)"
msgstr "輸入新庫存的序列號(或留空)"
-#: src/forms/StockForms.tsx:247
+#: src/forms/StockForms.tsx:255
msgid "Stock Status"
msgstr "庫存狀態"
-#: src/forms/StockForms.tsx:326
+#: src/forms/StockForms.tsx:334
#: src/pages/stock/StockDetail.tsx:754
#: src/tables/stock/StockItemTable.tsx:426
#: src/tables/stock/StockItemTable.tsx:475
msgid "Add Stock Item"
msgstr "編輯庫存項"
-#: src/forms/StockForms.tsx:371
+#: src/forms/StockForms.tsx:379
msgid "Select the part to install"
msgstr "選擇要安裝的零件"
-#: src/forms/StockForms.tsx:506
+#: src/forms/StockForms.tsx:514
msgid "Confirm Stock Transfer"
msgstr "確認庫存轉移"
-#: src/forms/StockForms.tsx:707
+#: src/forms/StockForms.tsx:717
msgid "Confirm Stock Return"
msgstr ""
-#: src/forms/StockForms.tsx:719
+#: src/forms/StockForms.tsx:729
msgid "Move to default location"
msgstr "移動到默認位置"
-#: src/forms/StockForms.tsx:842
-msgid "Move"
-msgstr "移動"
-
-#: src/forms/StockForms.tsx:890
-msgid "Return"
-msgstr "退貨"
-
-#: src/forms/StockForms.tsx:905
+#: src/forms/StockForms.tsx:759
+#: src/forms/StockForms.tsx:932
msgid "Merge into existing stock"
msgstr ""
-#: src/forms/StockForms.tsx:906
+#: src/forms/StockForms.tsx:869
+msgid "Move"
+msgstr "移動"
+
+#: src/forms/StockForms.tsx:917
+msgid "Return"
+msgstr "退貨"
+
+#: src/forms/StockForms.tsx:933
msgid "Merge returned items into existing stock items if possible"
msgstr ""
-#: src/forms/StockForms.tsx:912
+#: src/forms/StockForms.tsx:939
msgid "Stock transaction notes"
msgstr ""
-#: src/forms/StockForms.tsx:1043
+#: src/forms/StockForms.tsx:1070
#: src/pages/Index/Scan.tsx:180
msgid "Count"
msgstr "總計"
-#: src/forms/StockForms.tsx:1356
+#: src/forms/StockForms.tsx:1383
#: src/hooks/UseStockAdjustActions.tsx:112
msgid "Add Stock"
msgstr "添加庫存"
-#: src/forms/StockForms.tsx:1357
+#: src/forms/StockForms.tsx:1384
msgid "Stock added"
msgstr "庫存已新增"
-#: src/forms/StockForms.tsx:1360
+#: src/forms/StockForms.tsx:1387
msgid "Increase the quantity of the selected stock items by a given amount."
msgstr "增加選定庫存項目的數量。"
-#: src/forms/StockForms.tsx:1371
+#: src/forms/StockForms.tsx:1398
#: src/hooks/UseStockAdjustActions.tsx:122
msgid "Remove Stock"
msgstr "移除庫存"
-#: src/forms/StockForms.tsx:1372
+#: src/forms/StockForms.tsx:1399
msgid "Stock removed"
msgstr "庫存已移除"
-#: src/forms/StockForms.tsx:1375
+#: src/forms/StockForms.tsx:1402
msgid "Decrease the quantity of the selected stock items by a given amount."
msgstr "減少選定庫存項目的數量。"
-#: src/forms/StockForms.tsx:1386
+#: src/forms/StockForms.tsx:1424
#: src/hooks/UseStockAdjustActions.tsx:132
msgid "Transfer Stock"
msgstr "轉移庫存"
-#: src/forms/StockForms.tsx:1387
+#: src/forms/StockForms.tsx:1425
msgid "Stock transferred"
msgstr "庫存已轉移"
-#: src/forms/StockForms.tsx:1390
+#: src/forms/StockForms.tsx:1428
msgid "Transfer selected items to the specified location."
msgstr "將選定項目轉移到指定位置。"
-#: src/forms/StockForms.tsx:1401
+#: src/forms/StockForms.tsx:1439
#: src/hooks/UseStockAdjustActions.tsx:182
msgid "Return Stock"
msgstr "退回庫存"
-#: src/forms/StockForms.tsx:1402
+#: src/forms/StockForms.tsx:1440
msgid "Stock returned"
msgstr "庫存已退回"
-#: src/forms/StockForms.tsx:1405
+#: src/forms/StockForms.tsx:1443
msgid "Return selected items into stock, to the specified location."
msgstr "將選定項目退回庫存,至指定位置。"
-#: src/forms/StockForms.tsx:1416
+#: src/forms/StockForms.tsx:1454
#: src/hooks/UseStockAdjustActions.tsx:102
msgid "Count Stock"
msgstr "庫存數量"
-#: src/forms/StockForms.tsx:1417
+#: src/forms/StockForms.tsx:1455
msgid "Stock counted"
msgstr "庫存已盤點"
-#: src/forms/StockForms.tsx:1420
+#: src/forms/StockForms.tsx:1458
msgid "Count the selected stock items, and adjust the quantity accordingly."
msgstr "盤點選定的庫存項目,並相應地調整數量。"
-#: src/forms/StockForms.tsx:1431
+#: src/forms/StockForms.tsx:1469
msgid "Change Stock Status"
msgstr "更改庫存狀態"
-#: src/forms/StockForms.tsx:1432
+#: src/forms/StockForms.tsx:1470
msgid "Stock status changed"
msgstr "庫存狀態已變更"
-#: src/forms/StockForms.tsx:1435
+#: src/forms/StockForms.tsx:1473
msgid "Change the status of the selected stock items."
msgstr "變更選定庫存項目的狀態。"
-#: src/forms/StockForms.tsx:1458
+#: src/forms/StockForms.tsx:1496
#: src/hooks/UseStockAdjustActions.tsx:162
msgid "Change Batch Code"
msgstr "變更批次代碼"
-#: src/forms/StockForms.tsx:1461
+#: src/forms/StockForms.tsx:1499
msgid "Change batch code for the selected stock items"
msgstr "變更選定庫存項目的批次代碼"
-#: src/forms/StockForms.tsx:1478
+#: src/forms/StockForms.tsx:1516
#: src/hooks/UseStockAdjustActions.tsx:142
msgid "Merge Stock"
msgstr "合併庫存"
-#: src/forms/StockForms.tsx:1479
+#: src/forms/StockForms.tsx:1517
msgid "Stock merged"
msgstr "庫存已合併"
-#: src/forms/StockForms.tsx:1481
+#: src/forms/StockForms.tsx:1519
msgid "Merge Stock Items"
msgstr "合併庫存項目"
-#: src/forms/StockForms.tsx:1483
+#: src/forms/StockForms.tsx:1521
msgid "Merge operation cannot be reversed"
msgstr "合併操作無法還原"
-#: src/forms/StockForms.tsx:1484
+#: src/forms/StockForms.tsx:1522
msgid "Tracking information may be lost when merging items"
msgstr "合併項目時可能會遺失追蹤資訊"
-#: src/forms/StockForms.tsx:1485
+#: src/forms/StockForms.tsx:1523
msgid "Supplier information may be lost when merging items"
msgstr "合併項目時可能會遺失供應商資訊"
-#: src/forms/StockForms.tsx:1503
+#: src/forms/StockForms.tsx:1541
msgid "Assign Stock to Customer"
msgstr "將庫存分配給客戶"
-#: src/forms/StockForms.tsx:1504
+#: src/forms/StockForms.tsx:1542
msgid "Stock assigned to customer"
msgstr "庫存已分配給客戶"
-#: src/forms/StockForms.tsx:1514
+#: src/forms/StockForms.tsx:1552
msgid "Delete Stock Items"
msgstr "刪除庫存項"
-#: src/forms/StockForms.tsx:1515
+#: src/forms/StockForms.tsx:1553
msgid "Stock deleted"
msgstr "庫存已刪除"
-#: src/forms/StockForms.tsx:1518
+#: src/forms/StockForms.tsx:1556
msgid "This operation will permanently delete the selected stock items."
msgstr "此操作將永久刪除選定的庫存項目。"
-#: src/forms/StockForms.tsx:1527
+#: src/forms/StockForms.tsx:1565
msgid "Parent stock location"
msgstr "上級庫存地點"
-#: src/forms/StockForms.tsx:1654
+#: src/forms/StockForms.tsx:1692
msgid "Find Serial Number"
msgstr "尋找序號"
-#: src/forms/StockForms.tsx:1665
+#: src/forms/StockForms.tsx:1703
msgid "No matching items"
msgstr "沒有符合的項目"
-#: src/forms/StockForms.tsx:1671
+#: src/forms/StockForms.tsx:1709
msgid "Multiple matching items"
msgstr "多個符合的項目"
-#: src/forms/StockForms.tsx:1680
+#: src/forms/StockForms.tsx:1718
msgid "Invalid response from server"
msgstr "伺服器回應無效"
@@ -5539,7 +5547,7 @@ msgstr "內部伺服器錯誤"
#~ msgstr "You have been logged out"
#: src/functions/auth.tsx:124
-#: src/functions/auth.tsx:220
+#: src/functions/auth.tsx:222
msgid "Logged Out"
msgstr "已登出"
@@ -5551,97 +5559,97 @@ msgstr "此瀏覽器存在衝突的工作階段,已登出。"
#~ msgid "Found an existing login - using it to log you in."
#~ msgstr "Found an existing login - using it to log you in."
-#: src/functions/auth.tsx:143
-msgid "No response from server."
-msgstr "伺服器沒有回應。"
-
#: src/functions/auth.tsx:143
#~ msgid "Found an existing login - welcome back!"
#~ msgstr "Found an existing login - welcome back!"
-#: src/functions/auth.tsx:186
+#: src/functions/auth.tsx:145
+msgid "No response from server."
+msgstr "伺服器沒有回應。"
+
+#: src/functions/auth.tsx:188
msgid "MFA Login successful"
msgstr "MFA 登入成功"
-#: src/functions/auth.tsx:187
+#: src/functions/auth.tsx:189
msgid "MFA details were automatically provided in the browser"
msgstr "MFA 詳情已在瀏覽器中自動提供"
-#: src/functions/auth.tsx:221
+#: src/functions/auth.tsx:223
msgid "Successfully logged out"
msgstr "已成功登出"
-#: src/functions/auth.tsx:288
+#: src/functions/auth.tsx:290
msgid "Language changed"
msgstr "語言已變更"
-#: src/functions/auth.tsx:289
+#: src/functions/auth.tsx:291
msgid "Your active language has been changed to the one set in your profile"
msgstr "您的使用語言已變更為您個人資料中設定的語言"
-#: src/functions/auth.tsx:310
+#: src/functions/auth.tsx:312
msgid "Theme changed"
msgstr "佈景主題已變更"
-#: src/functions/auth.tsx:311
+#: src/functions/auth.tsx:313
msgid "Your active theme has been changed to the one set in your profile"
msgstr "您的使用佈景主題已變更為您個人資料中設定的佈景主題"
-#: src/functions/auth.tsx:346
+#: src/functions/auth.tsx:348
msgid "Check your inbox for a reset link. This only works if you have an account. Check in spam too."
msgstr "查看收件箱中的重置鏈接。這隻有在您有賬户的情況下才會起作用。也請檢查垃圾郵件。"
-#: src/functions/auth.tsx:353
-#: src/functions/auth.tsx:617
+#: src/functions/auth.tsx:355
+#: src/functions/auth.tsx:619
msgid "Reset failed"
msgstr "重置失敗"
-#: src/functions/auth.tsx:380
+#: src/functions/auth.tsx:382
msgid "Already logged in"
msgstr "已經登入"
-#: src/functions/auth.tsx:381
+#: src/functions/auth.tsx:383
msgid "There is a conflicting session on the server for this browser. Please logout of that first."
msgstr "此瀏覽器在伺服器上存在衝突的工作階段。請先登出該工作階段。"
-#: src/functions/auth.tsx:437
+#: src/functions/auth.tsx:439
msgid "Logged In"
msgstr "已登錄"
-#: src/functions/auth.tsx:438
+#: src/functions/auth.tsx:440
msgid "Successfully logged in"
msgstr "已成功登入"
-#: src/functions/auth.tsx:572
+#: src/functions/auth.tsx:574
msgid "Failed to set up MFA"
msgstr "設定 MFA 失敗"
-#: src/functions/auth.tsx:591
+#: src/functions/auth.tsx:593
msgid "MFA Setup successful"
msgstr "MFA 設定成功"
-#: src/functions/auth.tsx:592
+#: src/functions/auth.tsx:594
msgid "MFA via TOTP has been set up successfully; you will need to login again."
msgstr "已成功設定透過 TOTP 進行的 MFA;您將需要重新登入。"
-#: src/functions/auth.tsx:607
+#: src/functions/auth.tsx:609
msgid "Password set"
msgstr "密碼已設置"
-#: src/functions/auth.tsx:608
-#: src/functions/auth.tsx:717
+#: src/functions/auth.tsx:610
+#: src/functions/auth.tsx:719
msgid "The password was set successfully. You can now login with your new password"
msgstr "密碼設置成功。您現在可以使用新密碼登錄"
-#: src/functions/auth.tsx:682
+#: src/functions/auth.tsx:684
msgid "Password could not be changed"
msgstr "密碼無法變更"
-#: src/functions/auth.tsx:700
+#: src/functions/auth.tsx:702
msgid "The two password fields didn’t match"
msgstr "兩個密碼欄位不相符"
-#: src/functions/auth.tsx:716
+#: src/functions/auth.tsx:718
msgid "Password Changed"
msgstr "密碼已變更"
@@ -7287,15 +7295,15 @@ msgstr "定價"
msgid "Part Creation"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:280
+#: src/pages/Index/Settings/SystemSettings.tsx:281
msgid "Stock Expiry"
msgstr ""
-#: src/pages/Index/Settings/SystemSettings.tsx:289
+#: src/pages/Index/Settings/SystemSettings.tsx:290
msgid "Part Stocktake"
msgstr "零件盤點"
-#: src/pages/Index/Settings/SystemSettings.tsx:299
+#: src/pages/Index/Settings/SystemSettings.tsx:300
#: src/pages/part/PartStockHistoryDetail.tsx:296
#: src/pages/stock/StockDetail.tsx:554
msgid "Stock Tracking"
@@ -7305,7 +7313,7 @@ msgstr "庫存跟蹤"
#~ msgid "Switch to User Setting"
#~ msgstr "Switch to User Setting"
-#: src/pages/Index/Settings/SystemSettings.tsx:327
+#: src/pages/Index/Settings/SystemSettings.tsx:328
msgid "External Build Orders"
msgstr ""
@@ -8347,11 +8355,11 @@ msgstr "依序號搜尋"
msgid "Part Actions"
msgstr "零件選項"
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part locked"
msgstr ""
-#: src/pages/part/PartDetail.tsx:1182
+#: src/pages/part/PartDetail.tsx:1183
msgid "Part unlocked"
msgstr ""
diff --git a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx
index c272fddaed..f342daccb5 100644
--- a/src/frontend/src/pages/Index/Settings/SystemSettings.tsx
+++ b/src/frontend/src/pages/Index/Settings/SystemSettings.tsx
@@ -273,6 +273,7 @@ export default function SystemSettings() {
'STOCK_SHOW_INSTALLED_ITEMS',
'STOCK_ENFORCE_BOM_INSTALLATION',
'STOCK_ALLOW_OUT_OF_STOCK_TRANSFER',
+ 'STOCK_MERGE_ON_TRANSFER',
'TEST_STATION_DATA'
]}
/>
diff --git a/src/frontend/src/pages/part/PartDetail.tsx b/src/frontend/src/pages/part/PartDetail.tsx
index af83e85522..38194069b6 100644
--- a/src/frontend/src/pages/part/PartDetail.tsx
+++ b/src/frontend/src/pages/part/PartDetail.tsx
@@ -218,7 +218,10 @@ export default function PartDetail() {
// Fetch information on parts which are revisions of *this* part
const partRevisionQuery = useQuery({
refetchOnMount: true,
- enabled: revisionsEnabled && !!part && !!part.revision_count,
+ enabled:
+ revisionsEnabled &&
+ !!part &&
+ (!!part.revision_count || !!part.revision_of),
queryKey: ['part_revisions', part.pk, part.revision_count],
queryFn: async () =>
api
@@ -227,7 +230,23 @@ export default function PartDetail() {
revision_of: part.pk
}
})
- .then((response) => response.data)
+ .then(async (response) => {
+ let data = response.data;
+
+ // If the part is also a revision, fetch upstream revision information too
+ if (!!part.revision_of) {
+ await api
+ .get(apiUrl(ApiEndpoints.part_list), {
+ params: {
+ revision_of: part.revision_of
+ }
+ })
+ .then((response) => {
+ data = [...data, ...response.data];
+ });
+ }
+ return data;
+ })
});
const partRevisionOptions: any[] = useMemo(() => {
diff --git a/src/frontend/src/pages/stock/StockDetail.tsx b/src/frontend/src/pages/stock/StockDetail.tsx
index 5d73866074..fa4bb80fa9 100644
--- a/src/frontend/src/pages/stock/StockDetail.tsx
+++ b/src/frontend/src/pages/stock/StockDetail.tsx
@@ -431,17 +431,24 @@ export default function StockDetail() {
hidden: !stockitem.packaging
},
{
- type: 'text',
+ type: 'date',
+ name: 'creation_date',
+ icon: 'calendar',
+ label: t`Created`,
+ hidden: !stockitem.creation_date
+ },
+ {
+ type: 'date',
name: 'updated',
icon: 'calendar',
label: t`Last Updated`
},
{
- type: 'text',
- name: 'stocktake',
+ type: 'date',
+ name: 'stocktake_date',
icon: 'calendar',
label: t`Last Stocktake`,
- hidden: !stockitem.stocktake
+ hidden: !stockitem.stocktake_date
}
];
diff --git a/src/frontend/src/styles/overrides.css b/src/frontend/src/styles/overrides.css
index 180cf278e4..ccb922e03c 100644
--- a/src/frontend/src/styles/overrides.css
+++ b/src/frontend/src/styles/overrides.css
@@ -11,6 +11,14 @@
background-color: var(--mantine-color-dark-4);
}
+/* Today highlight */
+[data-mantine-color-scheme='light'] .fc-day-today {
+ background-color: var(--mantine-color-blue-1) !important;
+}
+[data-mantine-color-scheme='dark'] .fc-day-today {
+ background-color: var(--mantine-color-blue-9) !important;
+}
+
/* mantine-datatable overrides */
.mantine-datatable-pointer-cursor,
.mantine-datatable-context-menu-cursor {
diff --git a/src/frontend/src/tables/ColumnRenderers.tsx b/src/frontend/src/tables/ColumnRenderers.tsx
index b2d4eb4f81..f4c8e9a65b 100644
--- a/src/frontend/src/tables/ColumnRenderers.tsx
+++ b/src/frontend/src/tables/ColumnRenderers.tsx
@@ -94,6 +94,13 @@ export function PartColumn(props: PartColumnProps): TableColumn {
sortable: true,
switchable: false,
minWidth: '175px',
+ copyable: (record: any) => {
+ const part = resolveItem(
+ record,
+ props.part ?? props.accessor ?? 'part_detail'
+ );
+ return part?.full_name ?? part?.name ?? '';
+ },
render: (record: any) => {
const part = resolveItem(
record,
@@ -156,7 +163,7 @@ export function StockColumn(props: StockColumnProps): TableColumn {
text = `# ${stock_item.serial}`;
}
- if (record.is_building) {
+ if (stock_item.is_building) {
color = 'blue';
extra.push(
{t`This stock item is in production`}
);
- } else if (record.sales_order) {
+ } else if (stock_item.sales_order) {
extra.push(
{t`This stock item has been assigned to a sales order`}
);
- } else if (record.customer) {
+ } else if (stock_item.customer) {
extra.push(
{t`This stock item has been assigned to a customer`}
);
- } else if (record.belongs_to) {
+ } else if (stock_item.belongs_to) {
extra.push(
{t`This stock item is installed in another stock item`}
);
- } else if (record.consumed_by) {
+ } else if (stock_item.consumed_by) {
extra.push(
{t`This stock item has been consumed by a build order`}
);
- } else if (!record.in_stock) {
+ } else if (!stock_item.in_stock) {
extra.push(
{t`This stock item has expired`}
);
- } else if (record.stale) {
+ } else if (stock_item.stale) {
extra.push(
{t`This stock item is stale`}
);
}
- if (record.in_stock) {
+ if (stock_item.in_stock) {
if (allocated > 0) {
if (allocated > quantity) {
color = 'red';
@@ -267,7 +274,7 @@ export function StockColumn(props: StockColumnProps): TableColumn {
}
}
- if (!record.in_stock) {
+ if (!stock_item.in_stock) {
color = 'red';
}
diff --git a/src/frontend/src/tables/TableHoverCard.tsx b/src/frontend/src/tables/TableHoverCard.tsx
index 363af61133..913c6ced9b 100644
--- a/src/frontend/src/tables/TableHoverCard.tsx
+++ b/src/frontend/src/tables/TableHoverCard.tsx
@@ -68,7 +68,7 @@ export function TableHoverCard({
zIndex={zIndex}
>
-
+
{value}
{t`No stock available`}
)
}
@@ -447,7 +448,9 @@ export default function BuildLineTable({
extra={extra}
value={
- {formatDecimal(record.requiredQuantity)}
+
+ {formatDecimal(record.requiredQuantity)}
+
{record?.part_detail?.units && (
[{record.part_detail.units}]
)}
diff --git a/src/frontend/src/tables/part/PartTable.tsx b/src/frontend/src/tables/part/PartTable.tsx
index 583bdacac2..715529ddf0 100644
--- a/src/frontend/src/tables/part/PartTable.tsx
+++ b/src/frontend/src/tables/part/PartTable.tsx
@@ -181,7 +181,9 @@ function partTableColumns(): TableColumn[] {
- {text}
+
+ {text}
+
{record.units && (
[{record.units}]
diff --git a/src/frontend/src/tables/settings/ProjectCodeTable.tsx b/src/frontend/src/tables/settings/ProjectCodeTable.tsx
index d6cdddf9e8..e20e3210ed 100644
--- a/src/frontend/src/tables/settings/ProjectCodeTable.tsx
+++ b/src/frontend/src/tables/settings/ProjectCodeTable.tsx
@@ -11,6 +11,7 @@ import { ApiEndpoints } from '@lib/enums/ApiEndpoints';
import { UserRoles } from '@lib/enums/Roles';
import { apiUrl } from '@lib/functions/Api';
import useTable from '@lib/hooks/UseTable';
+import type { TableFilter } from '@lib/index';
import type { TableColumn } from '@lib/types/Tables';
import { projectCodeFields } from '../../forms/CommonForms';
import {
@@ -19,7 +20,11 @@ import {
useEditApiFormModal
} from '../../hooks/UseForm';
import { useUserState } from '../../states/UserState';
-import { DescriptionColumn, ResponsibleColumn } from '../ColumnRenderers';
+import {
+ BooleanColumn,
+ DescriptionColumn,
+ ResponsibleColumn
+} from '../ColumnRenderers';
import { InvenTreeTable } from '../InvenTreeTable';
/**
@@ -37,6 +42,9 @@ export default function ProjectCodeTable() {
sortable: true
},
DescriptionColumn({}),
+ BooleanColumn({
+ accessor: 'active'
+ }),
ResponsibleColumn({})
];
}, []);
@@ -89,6 +97,17 @@ export default function ProjectCodeTable() {
[user]
);
+ const tableFilters: TableFilter[] = useMemo(() => {
+ return [
+ {
+ name: 'active',
+ label: t`Active`,
+ description: t`Show active items`,
+ type: 'boolean'
+ }
+ ];
+ }, []);
+
const tableActions = useMemo(() => {
return [
diff --git a/src/frontend/src/tables/stock/StockItemTable.tsx b/src/frontend/src/tables/stock/StockItemTable.tsx
index 8b7cbd1880..45b3d1f639 100644
--- a/src/frontend/src/tables/stock/StockItemTable.tsx
+++ b/src/frontend/src/tables/stock/StockItemTable.tsx
@@ -84,6 +84,7 @@ function stockItemTableColumns({
'allocated',
'consumed',
'installed',
+ 'in_stock',
'sent_to_customer'
]
}),
diff --git a/src/frontend/yarn.lock b/src/frontend/yarn.lock
index f139eafcac..fbb2ec10ab 100644
--- a/src/frontend/yarn.lock
+++ b/src/frontend/yarn.lock
@@ -600,289 +600,140 @@
resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.4.0.tgz#5e13fac887f08c44f76b0ccaf3370eb00fec9bb6"
integrity sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==
-"@esbuild/aix-ppc64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz#80fcbe36130e58b7670511e888b8e88a259ed76c"
- integrity sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==
+"@esbuild/aix-ppc64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz#7a01a8d2ec2fbb2dac78adad09b0fa781e4082be"
+ integrity sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==
-"@esbuild/aix-ppc64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz#7a289c158e29cbf59ea0afc83cc80f06d1c89402"
- integrity sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==
+"@esbuild/android-arm64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz#b540a27d14e4afd058496a4dbec4d3f414db110a"
+ integrity sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==
-"@esbuild/android-arm64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz#8aa4965f8d0a7982dc21734bf6601323a66da752"
- integrity sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==
+"@esbuild/android-arm@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.1.tgz#704bd297de6d762de54eabbeafbf55f6756abe2f"
+ integrity sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==
-"@esbuild/android-arm64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz#b8828d9edfa3a92660644eb8de6e4f3c203d7b17"
- integrity sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==
+"@esbuild/android-x64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.1.tgz#d1cb166d34b0fbf0fe8ab460a5594f24a378701e"
+ integrity sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==
-"@esbuild/android-arm@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.12.tgz#300712101f7f50f1d2627a162e6e09b109b6767a"
- integrity sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==
+"@esbuild/darwin-arm64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz#1034b26457fc886368fe61bbd09f653f6afa8e54"
+ integrity sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==
-"@esbuild/android-arm@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.28.0.tgz#5ec1847605e05b5dbe5df90db9ff7e3e4c58dca7"
- integrity sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==
+"@esbuild/darwin-x64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz#65556a432a1e4d72032d8218c1932fcca1a49772"
+ integrity sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==
-"@esbuild/android-x64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.12.tgz#87dfb27161202bdc958ef48bb61b09c758faee16"
- integrity sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==
+"@esbuild/freebsd-arm64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz#2e61e0592f9030d7e3dae18ee25ebc535918aef6"
+ integrity sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==
-"@esbuild/android-x64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.28.0.tgz#390642175b88ef82bad4cce03f8ab13fe9b1912e"
- integrity sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==
+"@esbuild/freebsd-x64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz#c95ec289959ef8079c4dca817a1e2c4be66b9bd3"
+ integrity sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==
-"@esbuild/darwin-arm64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz#79197898ec1ff745d21c071e1c7cc3c802f0c1fd"
- integrity sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==
+"@esbuild/linux-arm64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz#40b22175dda06182f3ee8141186c5ff304c4a717"
+ integrity sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==
-"@esbuild/darwin-arm64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz#ae45325960d5950cd6951e4f97396f4e1ff7d8d3"
- integrity sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==
+"@esbuild/linux-arm@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz#c09a0f67917592ac0de892a9be4d3814debd2a6c"
+ integrity sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==
-"@esbuild/darwin-x64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz#146400a8562133f45c4d2eadcf37ddd09718079e"
- integrity sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==
+"@esbuild/linux-ia32@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz#a580f9c676797833891e519fc7a1337c8afd8db3"
+ integrity sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==
-"@esbuild/darwin-x64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz#c079247d589b6b99449659d94f06951b84bff2e4"
- integrity sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==
+"@esbuild/linux-loong64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz#46452cf321dc7f9e91c2fa780a56bb56e79cd68b"
+ integrity sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==
-"@esbuild/freebsd-arm64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz#1c5f9ba7206e158fd2b24c59fa2d2c8bb47ca0fe"
- integrity sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==
+"@esbuild/linux-mips64el@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz#4211b3184dd6608f53dcb22e39f5d34ee08852c8"
+ integrity sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==
-"@esbuild/freebsd-arm64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz#45c456215a486593c94900297202dc11c880a37a"
- integrity sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==
+"@esbuild/linux-ppc64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz#697857c2a61cb9b0b6bb6652e40c1dc5e1ca8e5d"
+ integrity sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==
-"@esbuild/freebsd-x64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz#ea631f4a36beaac4b9279fa0fcc6ca29eaeeb2b3"
- integrity sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==
+"@esbuild/linux-riscv64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz#d192943eb146a40ac4c6497d0cf7be35b986bf08"
+ integrity sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==
-"@esbuild/freebsd-x64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz#0399494c1c85e4388e9b7040bd60d48f2a5b0d2c"
- integrity sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==
+"@esbuild/linux-s390x@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz#acea0356da0e0ebc08f97cf7b9c2e401e1e648dc"
+ integrity sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==
-"@esbuild/linux-arm64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz#e1066bce58394f1b1141deec8557a5f0a22f5977"
- integrity sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==
+"@esbuild/linux-x64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz#6f0c3ce0cb64c534b70c4c45ecb2c16d34e35dfd"
+ integrity sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==
-"@esbuild/linux-arm64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz#d6d9f09ef0de54116bf459a4d53cac7e0952fe39"
- integrity sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==
+"@esbuild/netbsd-arm64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz#8bcd77077a0dce3378b574fedb26d2a253b73d36"
+ integrity sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==
-"@esbuild/linux-arm@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz#452cd66b20932d08bdc53a8b61c0e30baf4348b9"
- integrity sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==
+"@esbuild/netbsd-x64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz#e7fb2a01e99c830c94e6623cd9fefb4c8fb58347"
+ integrity sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==
-"@esbuild/linux-arm@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz#7b42ffa84c288ae94fdc431c1b28a89e3c3b9278"
- integrity sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==
+"@esbuild/openbsd-arm64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz#c52909372db8b86e2c55e05a8940033b5660a3b2"
+ integrity sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==
-"@esbuild/linux-ia32@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz#b24f8acc45bcf54192c7f2f3be1b53e6551eafe0"
- integrity sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==
+"@esbuild/openbsd-x64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz#c427b9be5a64c262ff9a7eb70b5fbbaadf446c6c"
+ integrity sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==
-"@esbuild/linux-ia32@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz#deb15d112ed8dd605346b6b953d23a21ff81253f"
- integrity sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==
+"@esbuild/openharmony-arm64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz#dc9b147baca2e6c4b3c85571741ef4860a489097"
+ integrity sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==
-"@esbuild/linux-loong64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz#f9cfffa7fc8322571fbc4c8b3268caf15bd81ad0"
- integrity sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==
+"@esbuild/sunos-x64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz#ce866d12df13c15e4c99f073a3d466f6e0649b3a"
+ integrity sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==
-"@esbuild/linux-loong64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz#81fb89d07eecc79b157dea61033757726fce0ca4"
- integrity sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==
+"@esbuild/win32-arm64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz#7468e3692d01d629d5941e5d83817bb80f9e39b4"
+ integrity sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==
-"@esbuild/linux-mips64el@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz#575a14bd74644ffab891adc7d7e60d275296f2cd"
- integrity sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==
+"@esbuild/win32-ia32@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz#a5bc0063fb2bcab6d0ed63f2a1537958bc269ec6"
+ integrity sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==
-"@esbuild/linux-mips64el@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz#d0e42691b3ff7af9fb2217b70fc01f343bdb62bb"
- integrity sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==
-
-"@esbuild/linux-ppc64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz#75b99c70a95fbd5f7739d7692befe60601591869"
- integrity sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==
-
-"@esbuild/linux-ppc64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz#389f3e5e98f17d477c467cc87136e1a076eead87"
- integrity sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==
-
-"@esbuild/linux-riscv64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz#2e3259440321a44e79ddf7535c325057da875cd6"
- integrity sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==
-
-"@esbuild/linux-riscv64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz#763bd60d59b242be12da1e67d5729f3024c605fa"
- integrity sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==
-
-"@esbuild/linux-s390x@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz#17676cabbfe5928da5b2a0d6df5d58cd08db2663"
- integrity sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==
-
-"@esbuild/linux-s390x@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz#aac6061634872e4677de693bce8030d73b1fd055"
- integrity sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==
-
-"@esbuild/linux-x64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz#0583775685ca82066d04c3507f09524d3cd7a306"
- integrity sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==
-
-"@esbuild/linux-x64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz#4f2917747188fe77632bcec65b2d84b422419779"
- integrity sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==
-
-"@esbuild/netbsd-arm64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz#f04c4049cb2e252fe96b16fed90f70746b13f4a4"
- integrity sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==
-
-"@esbuild/netbsd-arm64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz#814df0ae57a0c386814491b8397eeba82094a947"
- integrity sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==
-
-"@esbuild/netbsd-x64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz#77da0d0a0d826d7c921eea3d40292548b258a076"
- integrity sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==
-
-"@esbuild/netbsd-x64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz#e01bdf7e60fa1a08e46d46d960b0d9bb8ac210af"
- integrity sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==
-
-"@esbuild/openbsd-arm64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz#6296f5867aedef28a81b22ab2009c786a952dccd"
- integrity sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==
-
-"@esbuild/openbsd-arm64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz#4a15c36aacca68d2d5a4c90b710c06759f4c1ffa"
- integrity sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==
-
-"@esbuild/openbsd-x64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz#f8d23303360e27b16cf065b23bbff43c14142679"
- integrity sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==
-
-"@esbuild/openbsd-x64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz#475e6101498a8ecce3008d7c388111d7a27c17bd"
- integrity sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==
-
-"@esbuild/openharmony-arm64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz#49e0b768744a3924be0d7fd97dd6ce9b2923d88d"
- integrity sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==
-
-"@esbuild/openharmony-arm64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz#cfdc3957f0b7a69f1bde129aad17fcc2f6fa033e"
- integrity sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==
-
-"@esbuild/sunos-x64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz#a6ed7d6778d67e528c81fb165b23f4911b9b13d6"
- integrity sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==
-
-"@esbuild/sunos-x64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz#a013c856fecacd1c3aec985c8afe1d1cb017497d"
- integrity sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==
-
-"@esbuild/win32-arm64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz#9ac14c378e1b653af17d08e7d3ce34caef587323"
- integrity sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==
-
-"@esbuild/win32-arm64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz#eae05e0f35271cad3898b43168d3e9a3bbaf47e5"
- integrity sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==
-
-"@esbuild/win32-ia32@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz#918942dcbbb35cc14fca39afb91b5e6a3d127267"
- integrity sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==
-
-"@esbuild/win32-ia32@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz#06161ebc5bf75c08d69feb3c6b22560515913998"
- integrity sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==
-
-"@esbuild/win32-x64@0.25.12":
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz#9bdad8176be7811ad148d1f8772359041f46c6c5"
- integrity sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==
-
-"@esbuild/win32-x64@0.28.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz#04d90d5752b4ce65d2b6ac25eba08ff7624fe07c"
- integrity sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==
-
-"@flakiness/flakiness-report@^0.34.0":
- version "0.34.0"
- resolved "https://registry.yarnpkg.com/@flakiness/flakiness-report/-/flakiness-report-0.34.0.tgz#e15f79129479befd12b15e6890fde09be8b95db4"
- integrity sha512-37SRIky7mnMhV9Go/VO3pwo5r0ZQ5h/rTYmQBWdIyty2ZGylEUdbxZ+Yz2wCJwlmVeK9V8VWm0pInAjxUJ/x5g==
+"@esbuild/win32-x64@0.28.1":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz#10064ee44f4347b90c9a02b446bbf80a91632b12"
+ integrity sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==
"@flakiness/playwright@^1.13.0":
- version "1.13.0"
- resolved "https://registry.yarnpkg.com/@flakiness/playwright/-/playwright-1.13.0.tgz#d03fe74294452ad0ec479d7b1bb42b7fea973b28"
- integrity sha512-9bT6zkFIcsXwU5OsowIu4HXTPcEe8TVk8I538LJbkZpKIX7RMoUNU3StxK97hYN3P22VONO5yllHJAf3bD13+g==
- dependencies:
- "@flakiness/flakiness-report" "^0.34.0"
- "@flakiness/sdk" "^3.3.1"
-
-"@flakiness/sdk@^3.3.1":
- version "3.3.1"
- resolved "https://registry.yarnpkg.com/@flakiness/sdk/-/sdk-3.3.1.tgz#dfb1b6d62f3ff3ff9f4a1e573761227ae3e6a3a2"
- integrity sha512-LrV+g246Oo9MSpVKU9bY/UHOYglwcqr0e4I6Vz0RGhHtOyrR2xZRCVzsM4crItDvNbIW4/9AJSRwQ5nptCykvw==
- dependencies:
- debug "^4.4.3"
- open "^10.2.0"
- stable-hash "^0.0.6"
- which "^6.0.1"
- zod "^4.3.5"
+ version "1.15.0"
+ resolved "https://registry.yarnpkg.com/@flakiness/playwright/-/playwright-1.15.0.tgz#fa1f3049032982ad5967655da298bb05d611cc06"
+ integrity sha512-t7/q+MhYwN3FYXtymQIB4Z+W8n1Y80CspF8J9gOCS7PFp190YXat3pzleWRWVchsDlYqXCAXyeTLuDct/4/npA==
"@floating-ui/core@^1.7.5":
version "1.7.5"
@@ -1420,130 +1271,130 @@
estree-walker "^2.0.2"
picomatch "^4.0.2"
-"@rollup/rollup-android-arm-eabi@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.61.1.tgz#ce83f259581a4f5e6255d92902249f0366a15dd3"
- integrity sha512-JnBB8MdXj45cajvTuO5FmPlvFVJRQgvrz1uSEl3NwqFnReAPGwb8EanbGi4z2nRaqLzjJSv5/JmycoTKlRZxHA==
+"@rollup/rollup-android-arm-eabi@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz#5e9849b661c2229cf967a08dbe2dbbe9e8c991e5"
+ integrity sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==
-"@rollup/rollup-android-arm64@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.61.1.tgz#1a763329ffbc2a19057128ac266a1a46782a5f17"
- integrity sha512-Jx2g7iSjw4AOT0HDPHM9RV3GNjRXwybWtSFZiZAYUTjUwjVrYIwq3kBf+LnhqJlzXFAqTAh2F7IGI+O568exPw==
+"@rollup/rollup-android-arm64@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz#5b0699ee5dd484b222c9ed74aff43c91ea8b17f8"
+ integrity sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==
-"@rollup/rollup-darwin-arm64@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.61.1.tgz#ff9cffe102d29e052f49e5017fd036142f9bb7ef"
- integrity sha512-0F1L/Z3Eqv8mT2n3dCpeO8GcTvHvVqkP5/t6DMsn0KzhYVcg+s7Ncl5DS8qjKYEeio6Az0Gt6nyBORay5qIlCA==
+"@rollup/rollup-darwin-arm64@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz#8bc52c9d7a3ce8d0533c351a9c935de781daa06f"
+ integrity sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==
-"@rollup/rollup-darwin-x64@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.61.1.tgz#1ef1e8f5bd16865d8d2f377a58e7622820b3dda3"
- integrity sha512-qLttcH871ujY4YcVfUSShhOw+CsoTatYz8gRbHO7Bb92QH059/P0y5do1KMs41fY0BpD2x4AJH/gID0zFiqVKQ==
+"@rollup/rollup-darwin-x64@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz#ba2ef3e8fb310f0af35588f270cfa5aa96e48764"
+ integrity sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==
-"@rollup/rollup-freebsd-arm64@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.61.1.tgz#cb7d041010788213879f663d3100c4320c0910d9"
- integrity sha512-fUI4RapGE0Oh3mb8mgfvC1O2nU1RpDZUKnDQm3xB1Ipg7C2wTs5Kstz7G2uWK99a8S2yTMq8/P4uycwNa0nJyw==
+"@rollup/rollup-freebsd-arm64@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz#93b10bdbfe8ada226b8bc0c02ef6b7f544474d96"
+ integrity sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==
-"@rollup/rollup-freebsd-x64@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.61.1.tgz#25d4b4d7e52bb1a144fd130209732e5d0518251a"
- integrity sha512-H5YrdvJaDtI/U9/emrD4b++xkvp3y/JvOe4rizHbxvkyMfRS/CiRYdji+Pl8D0brEaNFWUh1drQxgAGIl6Xudw==
+"@rollup/rollup-freebsd-x64@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz#3e8aa38ef3c9c300946871e3fdbb0c30e0a20f86"
+ integrity sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==
-"@rollup/rollup-linux-arm-gnueabihf@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.61.1.tgz#9569a8dd884a22950df4461de8b26c750390531c"
- integrity sha512-Q8CBCCQtDFrYtXoeUXSrnFXKOnyUhx6bz+SkL6A0E7V8kAiCJ5pamq1WtbfpVGhR5TSpXY6ak3avmDc5fHTyJA==
+"@rollup/rollup-linux-arm-gnueabihf@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz#1d7994384bb0ad1bc41921b506e1642d4f9d7fc3"
+ integrity sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==
-"@rollup/rollup-linux-arm-musleabihf@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.61.1.tgz#33d0080b8cce62df8c3e6240875abf0d6c125cda"
- integrity sha512-nwnhk1581l0FBVellGcVCAT0Oi06onEA3WB53sf01VO3I0UPBkMH9sXONYME2K0ovXcNayJfNtHfm6mpJElatQ==
+"@rollup/rollup-linux-arm-musleabihf@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz#a6540f47cf844a56b80ca9ff95d2acdfb2cef97b"
+ integrity sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==
-"@rollup/rollup-linux-arm64-gnu@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.61.1.tgz#9c66a9b4d1746595680eec691e136f8efcfe3d78"
- integrity sha512-x5Xr49hwt3hdW75UOZm3395YwwzPyauktslv29KpWL/T+vVAzoT3azLcTWv0eMciBNrx+DYjH4paehHoLpPvpg==
+"@rollup/rollup-linux-arm64-gnu@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz#404f2045651840cbf48da91ba6d0f490f0bc2cbf"
+ integrity sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==
-"@rollup/rollup-linux-arm64-musl@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.61.1.tgz#e37aa97039af9dbb76a324148db06c6266acc9a0"
- integrity sha512-unMS3H73DpaoPyyEVPjGKleM/s0mkmsauTENpw4INQY8y4+IuLNjkueQ5QCtC0D3N38Y38yhAU8OoZ20S2Tm6w==
+"@rollup/rollup-linux-arm64-musl@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz#a3404ffddf7b474b48c99b9c893b6247bb765ba5"
+ integrity sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==
-"@rollup/rollup-linux-loong64-gnu@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.61.1.tgz#22951f5686b653968619d21a02b2572d5cbe51dc"
- integrity sha512-zNZzGRnAhwjFEYmvphJRV5XaQGjs62cCmeYYHUT//NbvEnHauw+I85nGG+SiVg5ld4GX8D1IbKIX+ozITQnhMQ==
+"@rollup/rollup-linux-loong64-gnu@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz#e8aac6d549b377945e349882f199b7c8eb75ca38"
+ integrity sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==
-"@rollup/rollup-linux-loong64-musl@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.61.1.tgz#778c983d0050792d85a62e2c74009fff821e5606"
- integrity sha512-LdpWGL8X209B2SIvWjqlc8VZgM6PKfontSerGepuldQmHYrAOtnMCXeJkxXGbC+PPZVOuu5czJo7fNV6aeW8rQ==
+"@rollup/rollup-linux-loong64-musl@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz#6e2e44ea50310b3a582078a915e5feb879c820d4"
+ integrity sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==
-"@rollup/rollup-linux-ppc64-gnu@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.61.1.tgz#74f34764b688a6081c8f75e155b58d2cdb39112f"
- integrity sha512-EC5kTtNaNGOmbMGqar8dvJy6y/hg99GAwjfBz++pxZhQATXGcRjd6c5en5wcbru0vkRmiMGsQKdMJOOf6sza4g==
+"@rollup/rollup-linux-ppc64-gnu@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz#6898302da6d77a0537cde64b2b4c6b60659bd110"
+ integrity sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==
-"@rollup/rollup-linux-ppc64-musl@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.61.1.tgz#821ccda4531dcdb42e56adddc178907615a6da07"
- integrity sha512-8hiwp6D4acEcNK78I4rP0/XtS1sknWIAMJBPdR4l6zUtyTm5KiTDr5bXmWt4foY7nAN7AThDHgkLIEZOWKbzWw==
+"@rollup/rollup-linux-ppc64-musl@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz#333717c95dd5a66bef8f63e7ef8a9fd845fd18d0"
+ integrity sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==
-"@rollup/rollup-linux-riscv64-gnu@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.61.1.tgz#849fa5c6b43fc6c4d257671fcebd701fe6947bd6"
- integrity sha512-10dh/h/BqA7DuMPWSxkR8uks18FRwnwOEqr5zOTEl+NOwP/OMzKX8OFR/Of9xxDA7D5qef1Nzar5WDD2kCCr1g==
+"@rollup/rollup-linux-riscv64-gnu@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz#81bc06ba380352004d01f4826eb7cdccefa05bad"
+ integrity sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==
-"@rollup/rollup-linux-riscv64-musl@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.61.1.tgz#80a8711af6c316ce448b93294c4a0891c2ddacbe"
- integrity sha512-YKJ5lg35DP17gcAOggnihe+APw9HLyj1Xn7gsmGumBJAUDa6NGXNixJzmkWLhcK9TOuuyQjdamzvJefkO7qHZQ==
+"@rollup/rollup-linux-riscv64-musl@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz#95a7cd39de21389ad6788a5284eaaa738e29ca4c"
+ integrity sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==
-"@rollup/rollup-linux-s390x-gnu@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.61.1.tgz#90acba54363c128b73dbb310642b977b5e6b9daa"
- integrity sha512-Mlil5G2Jj6a7B3LWGctg+XPL9vdXYuzCtNXfxOQ0nPjc2m6ueUktocPGH9bnAM0bNRKb/bAWTujUU7IJQdQA+g==
+"@rollup/rollup-linux-s390x-gnu@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz#06e6db2ec1bc48b5374c7923ef83c2eb024b2452"
+ integrity sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==
-"@rollup/rollup-linux-x64-gnu@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.61.1.tgz#32085c3f532c59269824ed9239e13f5acbe182b9"
- integrity sha512-bVWIOIk6pV01p4CdUbPP7CJ/434z+OooYjDuFcR+44N35YvKUC66G8MGnvcWx5mWKW3g61J+t74l3Kj15Kwn2Q==
+"@rollup/rollup-linux-x64-gnu@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz#5dc818988285e09e88790c6462def72413df2da3"
+ integrity sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==
-"@rollup/rollup-linux-x64-musl@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.61.1.tgz#becf0e9e29d77e7d04de841bda635e9f73b89dfb"
- integrity sha512-qy5pBvZbqNFheBz61R1rzsezjm0J7O2oNGoWtGoY89SZYLUfxAJTBAqDChqAIdB4rCiIbi9nF7yZ83GnNiLwSw==
+"@rollup/rollup-linux-x64-musl@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz#2080f4a93349e9afd34be6fc1a37e01fc8bfc80f"
+ integrity sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==
-"@rollup/rollup-openbsd-x64@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.61.1.tgz#d8478e23a575745f0febbde0867a133cf29fe164"
- integrity sha512-E83TXjI4zm0+5f2qO+UOudaCYIhYwpJ5jq6YCZNIZ+6CbfhKrkAGezeiASBL9ElxAxFsRS9ZhESv8mfnj6TKeg==
+"@rollup/rollup-openbsd-x64@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz#21d64a8acb66221724b923e51af5333df1af044b"
+ integrity sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==
-"@rollup/rollup-openharmony-arm64@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.61.1.tgz#b367bc49355b7ec2508cbad970721ac78b41bf0c"
- integrity sha512-fbWnKqVkjrJN38vNe3ahkbk6iejS/3b0Nt7EEtPpE6RBacZcGXNKbzfHN3GUUlXOPghUg0j6XUGrtjX9z1sIvA==
+"@rollup/rollup-openharmony-arm64@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz#8e0fcd9d02141e337b4c5b5cff576cb9a76b1ba0"
+ integrity sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==
-"@rollup/rollup-win32-arm64-msvc@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.61.1.tgz#d7be3478b45d6434d13cbe62cce29c4fb6366948"
- integrity sha512-ArMl38iVAbk0New1ogihQNY6iphLi4ZaRsa037gUzv5yeKPY8TD3Dmy4x2RNC1VztU/uqm+G+/RwFrSka3Oy2g==
+"@rollup/rollup-win32-arm64-msvc@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz#bdb4cc4efd58efe808203347f0f5463f0ea16e52"
+ integrity sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==
-"@rollup/rollup-win32-ia32-msvc@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.61.1.tgz#7ec5801739cae3bf119f419b77a10cb0dc49f40f"
- integrity sha512-0mYtjHS9ucAbcATycCNK9IGBk/cCe/ma7EmSLGZdsxnOA8cjRIyU04wDpVAD9NiOfLUR9KTxdiO53uOkherqjQ==
+"@rollup/rollup-win32-ia32-msvc@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz#dbaebde5afd24eae0eefe915d901632e7cb59860"
+ integrity sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==
-"@rollup/rollup-win32-x64-gnu@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.61.1.tgz#94a83572bf151772d945ffd4777ded305cd8c346"
- integrity sha512-gK1iCEPfpoSG9wfBihXxvBMi8ZfcWffYkEsC/Eih+iFENTaewvNcrEQ69lIOWYO5pePHKLHHO7nq5AILGO/HQQ==
+"@rollup/rollup-win32-x64-gnu@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz#84109e85fea5f8f1353499f96578fdc2a0e8b138"
+ integrity sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==
-"@rollup/rollup-win32-x64-msvc@4.61.1":
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.61.1.tgz#cb98a579ab6eec9940bda7a736df5e2b94eb0a27"
- integrity sha512-X+zaP2x+j4RXGfbp/seSoRHWnPxzApilDszisZxbYH5C/jTxFhCtDNdPGZb9lJyYPs24wGxruPF7Y+sIXt9Gzw==
+"@rollup/rollup-win32-x64-msvc@4.62.2":
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz#3671ce3f9b928d5c01f879792d5c0b60ae14d4ad"
+ integrity sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==
"@sentry-internal/browser-utils@10.57.0":
version "10.57.0"
@@ -2065,13 +1916,6 @@ archy@^1.0.0:
resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
-
argparse@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
@@ -2093,9 +1937,9 @@ attr-accept@^2.2.4:
integrity sha512-0bDNnY/u6pPwHDMoF0FieU354oBi0a8rD9FcsLwzcGWbc8KS8KPIi7y+s13OlVY+gMWc/9xEMUgNE6Qm8ZllYQ==
axios@^1.17.0:
- version "1.17.0"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.17.0.tgz#ae5a1164a4f719942cd73c67e6a3f62d3ccb8f2b"
- integrity sha512-J8SwNxprqqpbfenehxWYXE7CW+wM1BB4w3+N+g+/Wx40xM4rsLrfPmHHxSWIxJLYDgSY/HqlFPIYb2/S3rxafw==
+ version "1.18.1"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.18.1.tgz#d63f9863bcd8938815c86f9e2abd380189d96dfe"
+ integrity sha512-3nTvFlvpn9Zu/RkHUqtc7/+al4UpRW5az71ap5zccp6e8RAYEzhMTecX8Dz1wWDYrPpUoB1HAQEGEAEvUr7S9g==
dependencies:
follow-redirects "^1.16.0"
form-data "^4.0.5"
@@ -2122,9 +1966,9 @@ base64-js@^1.3.1:
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
baseline-browser-mapping@^2.10.12:
- version "2.10.35"
- resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.35.tgz#f0f2232e0de2d2f82cc491bcf830b05ed05937c6"
- integrity sha512-honAfLBde0HAFLdNyBEfuuENkF6zR+ozxqxa/2zJKHBe1qzLqyTSeRKpdPEHAP03rlDGyQOPnCSxnVpVqQo9Mg==
+ version "2.10.38"
+ resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.38.tgz#c84d093c4bf7325c5053c279d90f153c66526042"
+ integrity sha512-31/02mVB4yuQU6adKk5SlY6m+mxDwUq5KZkyYgnLrrKl7TEm1+3PyDtDBz2kOv/wxZz41GHsvV1A/u6RmiyBvw==
before-after-hook@^4.0.0:
version "4.0.0"
@@ -2178,13 +2022,6 @@ buffer@^5.5.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
-bundle-name@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-4.1.0.tgz#f3b96b34160d6431a19d7688135af7cfb8797889"
- integrity sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==
- dependencies:
- run-applescript "^7.0.0"
-
cac@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/cac/-/cac-7.0.0.tgz#7dda83da2268f75f840ab89ac3bcc36c120a78da"
@@ -2229,9 +2066,9 @@ camelize@^1.0.0:
integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==
caniuse-lite@^1.0.30001782:
- version "1.0.30001797"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001797.tgz#1332709e1439f01ff92085dd17001e0a45897ec0"
- integrity sha512-l8xKG+gwAIExZGl9FrF7KUwuOmk6wbEPC9Xoy/RtnWv1XG0Q4LFlagaLpUv3Kiza3W/wm27zy0yWJEieYKAP6w==
+ version "1.0.30001799"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001799.tgz#5c909138c27f1a61219d3e092071c1cc7d32dc55"
+ integrity sha512-hG1bReV+OUU+MOqK4t/ZWI0tZOyz3rqS9XuhOUz1cIcbwBKjOyJEJuw9ER5JuNyqxNk8u/JUVbGibBOL1yrjFw==
chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0:
version "4.1.2"
@@ -2533,7 +2370,7 @@ dayjs@^1.11.21:
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.21.tgz#57f87562e62de76f3c704bd2b8d522fc33068eb2"
integrity sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==
-debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.4.0, debug@^4.4.3:
+debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.2.0, debug@^4.3.1, debug@^4.4.0:
version "4.4.3"
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
@@ -2565,19 +2402,6 @@ deepmerge@^4.2.2:
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
-default-browser-id@^5.0.0:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-5.0.1.tgz#f7a7ccb8f5104bf8e0f71ba3b1ccfa5eafdb21e8"
- integrity sha512-x1VCxdX4t+8wVfd1so/9w+vQ4vx7lKd2Qp5tDRutErwmR85OgmfX7RlLRMWafRMY7hbEiXIbudNrjOAPa/hL8Q==
-
-default-browser@^5.2.1:
- version "5.5.0"
- resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-5.5.0.tgz#2792e886f2422894545947cc80e1a444496c5976"
- integrity sha512-H9LMLr5zwIbSxrmvikGuI/5KGhZ8E2zH3stkMgM5LpOWDutGM2JZaj460Udnf1a+946zc7YBgrqEWwbk7zHvGw==
- dependencies:
- bundle-name "^4.1.0"
- default-browser-id "^5.0.0"
-
default-require-extensions@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.1.tgz#bfae00feeaeada68c2ae256c62540f60b80625bd"
@@ -2592,11 +2416,6 @@ defaults@^1.0.3:
dependencies:
clone "^1.0.2"
-define-lazy-prop@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f"
- integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==
-
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -2648,9 +2467,9 @@ easymde@^2.21.0:
marked "^4.1.0"
electron-to-chromium@^1.5.328:
- version "1.5.370"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.370.tgz#47dbc6565e5f13991a483e10cddff4bf0933de96"
- integrity sha512-D5tSHJReAb/Kf3Hu9F/GO4lJuSWzEWHwvQ/kKSUP7pimNgvxkSKj+gUQhHpKKACwrin7rS3byU7IxreF56rl5g==
+ version "1.5.375"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.375.tgz#54a9a616dc2b3765e7263d98d14c2135408954d9"
+ integrity sha512-ZWP5eB4BVPW/ZYo9252hQZHZ5XavtsTgpbhcmMmRwymavC5AsLWQWBPaKMeNd2LW0KGby5HPXvj7+sr4ta5j/Q==
embla-carousel-react@^8.6.0:
version "8.6.0"
@@ -2729,69 +2548,37 @@ es6-error@^4.0.1:
resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
-esbuild@^0.25.0, esbuild@^0.25.1:
- version "0.25.12"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.12.tgz#97a1d041f4ab00c2fce2f838d2b9969a2d2a97a5"
- integrity sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==
+esbuild@^0.25.1, esbuild@^0.27.0, esbuild@^0.28, "esbuild@npm:esbuild@>=0.17.6 <0.29.0":
+ version "0.28.1"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.1.tgz#ef45b4634c9c9d97a296aea4114a5f9840f95578"
+ integrity sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==
optionalDependencies:
- "@esbuild/aix-ppc64" "0.25.12"
- "@esbuild/android-arm" "0.25.12"
- "@esbuild/android-arm64" "0.25.12"
- "@esbuild/android-x64" "0.25.12"
- "@esbuild/darwin-arm64" "0.25.12"
- "@esbuild/darwin-x64" "0.25.12"
- "@esbuild/freebsd-arm64" "0.25.12"
- "@esbuild/freebsd-x64" "0.25.12"
- "@esbuild/linux-arm" "0.25.12"
- "@esbuild/linux-arm64" "0.25.12"
- "@esbuild/linux-ia32" "0.25.12"
- "@esbuild/linux-loong64" "0.25.12"
- "@esbuild/linux-mips64el" "0.25.12"
- "@esbuild/linux-ppc64" "0.25.12"
- "@esbuild/linux-riscv64" "0.25.12"
- "@esbuild/linux-s390x" "0.25.12"
- "@esbuild/linux-x64" "0.25.12"
- "@esbuild/netbsd-arm64" "0.25.12"
- "@esbuild/netbsd-x64" "0.25.12"
- "@esbuild/openbsd-arm64" "0.25.12"
- "@esbuild/openbsd-x64" "0.25.12"
- "@esbuild/openharmony-arm64" "0.25.12"
- "@esbuild/sunos-x64" "0.25.12"
- "@esbuild/win32-arm64" "0.25.12"
- "@esbuild/win32-ia32" "0.25.12"
- "@esbuild/win32-x64" "0.25.12"
-
-"esbuild@npm:esbuild@>=0.17.6 <0.29.0":
- version "0.28.0"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.28.0.tgz#5dee347ffb3e3874212a35a69836b077b1ce6d96"
- integrity sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==
- optionalDependencies:
- "@esbuild/aix-ppc64" "0.28.0"
- "@esbuild/android-arm" "0.28.0"
- "@esbuild/android-arm64" "0.28.0"
- "@esbuild/android-x64" "0.28.0"
- "@esbuild/darwin-arm64" "0.28.0"
- "@esbuild/darwin-x64" "0.28.0"
- "@esbuild/freebsd-arm64" "0.28.0"
- "@esbuild/freebsd-x64" "0.28.0"
- "@esbuild/linux-arm" "0.28.0"
- "@esbuild/linux-arm64" "0.28.0"
- "@esbuild/linux-ia32" "0.28.0"
- "@esbuild/linux-loong64" "0.28.0"
- "@esbuild/linux-mips64el" "0.28.0"
- "@esbuild/linux-ppc64" "0.28.0"
- "@esbuild/linux-riscv64" "0.28.0"
- "@esbuild/linux-s390x" "0.28.0"
- "@esbuild/linux-x64" "0.28.0"
- "@esbuild/netbsd-arm64" "0.28.0"
- "@esbuild/netbsd-x64" "0.28.0"
- "@esbuild/openbsd-arm64" "0.28.0"
- "@esbuild/openbsd-x64" "0.28.0"
- "@esbuild/openharmony-arm64" "0.28.0"
- "@esbuild/sunos-x64" "0.28.0"
- "@esbuild/win32-arm64" "0.28.0"
- "@esbuild/win32-ia32" "0.28.0"
- "@esbuild/win32-x64" "0.28.0"
+ "@esbuild/aix-ppc64" "0.28.1"
+ "@esbuild/android-arm" "0.28.1"
+ "@esbuild/android-arm64" "0.28.1"
+ "@esbuild/android-x64" "0.28.1"
+ "@esbuild/darwin-arm64" "0.28.1"
+ "@esbuild/darwin-x64" "0.28.1"
+ "@esbuild/freebsd-arm64" "0.28.1"
+ "@esbuild/freebsd-x64" "0.28.1"
+ "@esbuild/linux-arm" "0.28.1"
+ "@esbuild/linux-arm64" "0.28.1"
+ "@esbuild/linux-ia32" "0.28.1"
+ "@esbuild/linux-loong64" "0.28.1"
+ "@esbuild/linux-mips64el" "0.28.1"
+ "@esbuild/linux-ppc64" "0.28.1"
+ "@esbuild/linux-riscv64" "0.28.1"
+ "@esbuild/linux-s390x" "0.28.1"
+ "@esbuild/linux-x64" "0.28.1"
+ "@esbuild/netbsd-arm64" "0.28.1"
+ "@esbuild/netbsd-x64" "0.28.1"
+ "@esbuild/openbsd-arm64" "0.28.1"
+ "@esbuild/openbsd-x64" "0.28.1"
+ "@esbuild/openharmony-arm64" "0.28.1"
+ "@esbuild/sunos-x64" "0.28.1"
+ "@esbuild/win32-arm64" "0.28.1"
+ "@esbuild/win32-ia32" "0.28.1"
+ "@esbuild/win32-x64" "0.28.1"
escalade@^3.2.0:
version "3.2.0"
@@ -2822,11 +2609,6 @@ espree@^11.2.0:
acorn-jsx "^5.3.2"
eslint-visitor-keys "^5.0.1"
-esprima@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
- integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
estree-walker@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
@@ -2860,7 +2642,7 @@ fast-equals@^4.0.3:
resolved "https://registry.yarnpkg.com/fast-equals/-/fast-equals-4.0.3.tgz#72884cc805ec3c6679b99875f6b7654f39f0e8c7"
integrity sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==
-fdir@^6.4.3, fdir@^6.4.4, fdir@^6.5.0:
+fdir@^6.4.3, fdir@^6.5.0:
version "6.5.0"
resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350"
integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==
@@ -3181,11 +2963,6 @@ is-core-module@^2.16.1:
dependencies:
hasown "^2.0.3"
-is-docker@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200"
- integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==
-
is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
@@ -3203,13 +2980,6 @@ is-glob@^4.0.1, is-glob@~4.0.1:
dependencies:
is-extglob "^2.1.1"
-is-inside-container@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4"
- integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==
- dependencies:
- is-docker "^3.0.0"
-
is-interactive@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e"
@@ -3245,23 +3015,11 @@ is-windows@^1.0.2:
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
-is-wsl@^3.1.0:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-3.1.1.tgz#327897b26832a3eb117da6c27492d04ca132594f"
- integrity sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==
- dependencies:
- is-inside-container "^1.0.0"
-
isexe@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
-isexe@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-4.0.0.tgz#48f6576af8e87a18feb796b7ed5e2e5903b43dca"
- integrity sha512-FFUtZMpoZ8RqHS3XeXEmHWLA4thH+ZxCv2lOiPIn1Xc7CxrqhWzNSDzD+/chS/zbYezmiwWLdQC09JdQKmthOw==
-
istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756"
@@ -3366,15 +3124,7 @@ js-sha256@^0.10.1:
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-js-yaml@^3.13.1:
- version "3.14.2"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.2.tgz#77485ce1dd7f33c061fd1b16ecea23b55fcb04b0"
- integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
-js-yaml@^4.1.0:
+js-yaml@^3.13.1, js-yaml@^4, js-yaml@^4.1.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.2.0.tgz#2bd9e85682dd91bd469afb809d816043b3d49524"
integrity sha512-ePWsvanv0DWuDRsW8dnt+R4jQ31SCRCQ7hhNcPXZPsoBZiemuZNYGf7adZdqX2D86j6rvKp3RpCxVTSb8WQlOw==
@@ -3628,9 +3378,9 @@ ms@^2.1.3:
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
nanoid@^3.3.12:
- version "3.3.12"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.12.tgz#ab3d912e217a6d0a514f00a72a16543a28982c05"
- integrity sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==
+ version "3.3.15"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.15.tgz#36c490fad8c6e86c824c940dfdde999b69ed4316"
+ integrity sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==
node-preload@^0.2.1:
version "0.2.1"
@@ -3704,16 +3454,6 @@ onetime@^5.1.0:
dependencies:
mimic-fn "^2.1.0"
-open@^10.2.0:
- version "10.2.0"
- resolved "https://registry.yarnpkg.com/open/-/open-10.2.0.tgz#b9d855be007620e80b6fb05fac98141fe62db73c"
- integrity sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==
- dependencies:
- default-browser "^5.2.1"
- define-lazy-prop "^3.0.0"
- is-inside-container "^1.0.0"
- wsl-utils "^0.1.0"
-
ora@^5.1.0:
version "5.4.1"
resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18"
@@ -3928,7 +3668,7 @@ postcss-value-parser@^4.0.2:
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-postcss@^8.5.3:
+postcss@^8.5.6:
version "8.5.15"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.15.tgz#d1eaf677a324e9ec02196da2d3fecf4a0b9a735c"
integrity sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==
@@ -4297,45 +4037,40 @@ rollup-plugin-license@^3.7.1:
spdx-expression-validate "^2.0.0"
spdx-satisfies "^5.0.1"
-rollup@^4.34.9, rollup@^4.61.1:
- version "4.61.1"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.61.1.tgz#4a053204912e9083e51cb3a0bf02ffdc397264fb"
- integrity sha512-I4KW6iuRpuu2uHBLraZ1wNZe0DP7lnRha+VJ9tNaYVaVgKhW0aI3h4RYnoRPeql0flHm/Co55b7snEDcOfOJrA==
+rollup@^4.43.0, rollup@^4.61.1:
+ version "4.62.2"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.62.2.tgz#d90fc4cb811f071303c890b779595634f35f9541"
+ integrity sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==
dependencies:
"@types/estree" "1.0.9"
optionalDependencies:
- "@rollup/rollup-android-arm-eabi" "4.61.1"
- "@rollup/rollup-android-arm64" "4.61.1"
- "@rollup/rollup-darwin-arm64" "4.61.1"
- "@rollup/rollup-darwin-x64" "4.61.1"
- "@rollup/rollup-freebsd-arm64" "4.61.1"
- "@rollup/rollup-freebsd-x64" "4.61.1"
- "@rollup/rollup-linux-arm-gnueabihf" "4.61.1"
- "@rollup/rollup-linux-arm-musleabihf" "4.61.1"
- "@rollup/rollup-linux-arm64-gnu" "4.61.1"
- "@rollup/rollup-linux-arm64-musl" "4.61.1"
- "@rollup/rollup-linux-loong64-gnu" "4.61.1"
- "@rollup/rollup-linux-loong64-musl" "4.61.1"
- "@rollup/rollup-linux-ppc64-gnu" "4.61.1"
- "@rollup/rollup-linux-ppc64-musl" "4.61.1"
- "@rollup/rollup-linux-riscv64-gnu" "4.61.1"
- "@rollup/rollup-linux-riscv64-musl" "4.61.1"
- "@rollup/rollup-linux-s390x-gnu" "4.61.1"
- "@rollup/rollup-linux-x64-gnu" "4.61.1"
- "@rollup/rollup-linux-x64-musl" "4.61.1"
- "@rollup/rollup-openbsd-x64" "4.61.1"
- "@rollup/rollup-openharmony-arm64" "4.61.1"
- "@rollup/rollup-win32-arm64-msvc" "4.61.1"
- "@rollup/rollup-win32-ia32-msvc" "4.61.1"
- "@rollup/rollup-win32-x64-gnu" "4.61.1"
- "@rollup/rollup-win32-x64-msvc" "4.61.1"
+ "@rollup/rollup-android-arm-eabi" "4.62.2"
+ "@rollup/rollup-android-arm64" "4.62.2"
+ "@rollup/rollup-darwin-arm64" "4.62.2"
+ "@rollup/rollup-darwin-x64" "4.62.2"
+ "@rollup/rollup-freebsd-arm64" "4.62.2"
+ "@rollup/rollup-freebsd-x64" "4.62.2"
+ "@rollup/rollup-linux-arm-gnueabihf" "4.62.2"
+ "@rollup/rollup-linux-arm-musleabihf" "4.62.2"
+ "@rollup/rollup-linux-arm64-gnu" "4.62.2"
+ "@rollup/rollup-linux-arm64-musl" "4.62.2"
+ "@rollup/rollup-linux-loong64-gnu" "4.62.2"
+ "@rollup/rollup-linux-loong64-musl" "4.62.2"
+ "@rollup/rollup-linux-ppc64-gnu" "4.62.2"
+ "@rollup/rollup-linux-ppc64-musl" "4.62.2"
+ "@rollup/rollup-linux-riscv64-gnu" "4.62.2"
+ "@rollup/rollup-linux-riscv64-musl" "4.62.2"
+ "@rollup/rollup-linux-s390x-gnu" "4.62.2"
+ "@rollup/rollup-linux-x64-gnu" "4.62.2"
+ "@rollup/rollup-linux-x64-musl" "4.62.2"
+ "@rollup/rollup-openbsd-x64" "4.62.2"
+ "@rollup/rollup-openharmony-arm64" "4.62.2"
+ "@rollup/rollup-win32-arm64-msvc" "4.62.2"
+ "@rollup/rollup-win32-ia32-msvc" "4.62.2"
+ "@rollup/rollup-win32-x64-gnu" "4.62.2"
+ "@rollup/rollup-win32-x64-msvc" "4.62.2"
fsevents "~2.3.2"
-run-applescript@^7.0.0:
- version "7.1.0"
- resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-7.1.0.tgz#2e9e54c4664ec3106c5b5630e249d3d6595c4911"
- integrity sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==
-
safe-buffer@~5.2.0:
version "5.2.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
@@ -4352,9 +4087,9 @@ semver@^6.0.0, semver@^6.3.1:
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
semver@^7.5.3, semver@^7.5.4:
- version "7.8.3"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.3.tgz#c350de61c2a1ddbc96d7fae3e5b6fcf92d477fbe"
- integrity sha512-wnilbGyMxzbY7dNOl7jpKbLSjcfeweJWU5j4+u5qW+6/wuGD9KzIGOyZnQVSBM9E7DtWaaH3CyHkppYrKYoxwg==
+ version "7.8.4"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.4.tgz#c73eceebae0616934be8dff28a7fd70757c8e696"
+ integrity sha512-rUCObTnP32Q08R2uuIrt7r9PlEonuTmtuXYcW6s5kjdlj3xbnwe+21yXptAUYcMAABLkYYTtnmzb3w3EDZfueA==
set-blocking@^2.0.0:
version "2.0.0"
@@ -4469,16 +4204,6 @@ spdx-satisfies@^5.0.1:
spdx-expression-parse "^3.0.0"
spdx-ranges "^2.0.0"
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
- integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
-
-stable-hash@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/stable-hash/-/stable-hash-0.0.6.tgz#7dd2cb7c71c2526b0d089b6bf0d1fcef38a6f97e"
- integrity sha512-0afH4mobqTybYZsXImQRLOjHV4gvOW+92HdUIax9t7a8d9v54KWykEuMVIcXhD9BCi+w3kS4x7O6fmZQ3JlG/g==
-
string-width@^4.1.0, string-width@^4.2.0:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@@ -4587,7 +4312,7 @@ tiny-invariant@^1.3.3:
dependencies:
esm "^3.2.25"
-tinyglobby@^0.2.13:
+tinyglobby@^0.2.15:
version "0.2.17"
resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.17.tgz#562a9a6c9eb2b3b123d39719f9af5bb44fcd7631"
integrity sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==
@@ -4652,9 +4377,9 @@ ufo@^1.6.3:
integrity sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==
undici@^6.23.0, undici@^6.24.0:
- version "6.26.0"
- resolved "https://registry.yarnpkg.com/undici/-/undici-6.26.0.tgz#333a35b7f519c48d2dc6aeb38e4e91d9274e0652"
- integrity sha512-4yqz8a3n5HmGTlsbADNtr/dJlhkh/55Rq798G6ibiULcXbDtaLpTl1pvdqcbFfeoj3iSi52lePFM7h9H21cw/A==
+ version "6.27.0"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-6.27.0.tgz#41f9e48f7c5a40d27376caaead8c9a9fc7bca9c4"
+ integrity sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==
undici@^8.4.1:
version "8.5.0"
@@ -4821,17 +4546,17 @@ vite-plugin-istanbul@^9.0.1:
source-map "^0.7.6"
test-exclude "^8.0.0"
-"vite@^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", vite@^6.4.2, vite@^8.0.0:
- version "6.4.3"
- resolved "https://registry.yarnpkg.com/vite/-/vite-6.4.3.tgz#85a164db7ce706f2a776812efa2b340f1721858e"
- integrity sha512-NTKlcQjlAK7MlQoyb6LgaqHc8sso/pVyUJYWMws3jg21uTJw/LddqIFPcPqP6PzpgbIcZyKI85sFE4HBrQDA8A==
+"vite@^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", vite@^7, vite@^7.0.0, vite@^8.0.0:
+ version "7.3.5"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-7.3.5.tgz#90c2d0b7b94a224e7e7dcf22d2912ff0b5291165"
+ integrity sha512-KuOaNhcnGFN2zIPGA7wRmzF+lJA1sea7rHq17aiJ++9lzY1WWG6Jpwqwe1KNbRVPIqHmr8GLYx7jbrQcN/7/ww==
dependencies:
- esbuild "^0.25.0"
- fdir "^6.4.4"
- picomatch "^4.0.2"
- postcss "^8.5.3"
- rollup "^4.34.9"
- tinyglobby "^0.2.13"
+ esbuild "^0.27.0"
+ fdir "^6.5.0"
+ picomatch "^4.0.3"
+ postcss "^8.5.6"
+ rollup "^4.43.0"
+ tinyglobby "^0.2.15"
optionalDependencies:
fsevents "~2.3.3"
@@ -4869,13 +4594,6 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
-which@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/which/-/which-6.0.1.tgz#021642443a198fb93b784a5606721cb18cfcbfce"
- integrity sha512-oGLe46MIrCRqX7ytPUf66EAYvdeMIZYn3WaocqqKZAxrBpkqHfL/qvTyJ/bTk5+AqHCjXmrv3CEWgy368zhRUg==
- dependencies:
- isexe "^4.0.0"
-
wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
@@ -4895,13 +4613,6 @@ write-file-atomic@^3.0.0:
signal-exit "^3.0.2"
typedarray-to-buffer "^3.1.5"
-wsl-utils@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/wsl-utils/-/wsl-utils-0.1.0.tgz#8783d4df671d4d50365be2ee4c71917a0557baab"
- integrity sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==
- dependencies:
- is-wsl "^3.1.0"
-
y18n@^4.0.0:
version "4.0.3"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
@@ -4952,11 +4663,6 @@ zod@^3.22.4:
resolved "https://registry.yarnpkg.com/zod/-/zod-3.25.76.tgz#26841c3f6fd22a6a2760e7ccb719179768471e34"
integrity sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==
-zod@^4.3.5:
- version "4.4.3"
- resolved "https://registry.yarnpkg.com/zod/-/zod-4.4.3.tgz#b680f172885d18bbebf21a834ea25e55a1bbf356"
- integrity sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==
-
zustand@^5.0.14:
version "5.0.14"
resolved "https://registry.yarnpkg.com/zustand/-/zustand-5.0.14.tgz#18216c24fcb980cf36898f9c57520e67b1f77855"
diff --git a/tasks.py b/tasks.py
index 4f94ff57f6..b59a43d738 100644
--- a/tasks.py
+++ b/tasks.py
@@ -906,6 +906,23 @@ def backend_trans(c, verbose: bool = False):
success('Backend translations compiled successfully')
+@task(help={'verbose': 'Print verbose output'})
+@state_logger('backend_compilemessages')
+def backend_compilemessages(c, verbose: bool = False):
+ """Compile backend Django translation files without loading InvenTree settings."""
+ info('Compiling backend translations...')
+
+ cmd = 'python3 -m django compilemessages'
+
+ if verbose:
+ cmd += ' -v 1'
+ else:
+ cmd += ' -v 0'
+
+ run(c, cmd, manage_py_dir())
+ success('Backend translations compiled successfully')
+
+
@task(
help={
'clean': 'Clean up old backup files',
@@ -2490,6 +2507,7 @@ internal = Collection(
clear_generated,
export_settings_definitions,
export_definitions,
+ backend_compilemessages,
frontend_build,
frontend_check,
frontend_compile,